Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf2fed58

Browse files
author
Nikita Glukhov
committed
Add equal funcs for SQL/JSON constructor nodes
1 parentdbc8249 commitf2fed58

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

‎src/backend/nodes/equalfuncs.c

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -863,6 +863,96 @@ _equalJsonConstructorExpr(const JsonConstructorExpr *a, const JsonConstructorExp
863863
return true;
864864
}
865865

866+
staticbool
867+
_equalJsonKeyValue(constJsonKeyValue*a,constJsonKeyValue*b)
868+
{
869+
COMPARE_NODE_FIELD(key);
870+
COMPARE_NODE_FIELD(value);
871+
872+
return true;
873+
}
874+
875+
staticbool
876+
_equalJsonObjectConstructor(constJsonObjectConstructor*a,
877+
constJsonObjectConstructor*b)
878+
{
879+
COMPARE_NODE_FIELD(exprs);
880+
COMPARE_NODE_FIELD(output);
881+
COMPARE_SCALAR_FIELD(absent_on_null);
882+
COMPARE_SCALAR_FIELD(unique);
883+
COMPARE_LOCATION_FIELD(location);
884+
885+
return true;
886+
}
887+
888+
staticbool
889+
_equalJsonAggConstructor(constJsonAggConstructor*a,
890+
constJsonAggConstructor*b)
891+
{
892+
COMPARE_NODE_FIELD(output);
893+
COMPARE_NODE_FIELD(agg_filter);
894+
COMPARE_NODE_FIELD(agg_order);
895+
COMPARE_NODE_FIELD(over);
896+
COMPARE_LOCATION_FIELD(location);
897+
898+
return true;
899+
}
900+
901+
staticbool
902+
_equalJsonObjectAgg(constJsonObjectAgg*a,constJsonObjectAgg*b)
903+
{
904+
COMPARE_NODE_FIELD(constructor);
905+
COMPARE_NODE_FIELD(arg);
906+
COMPARE_SCALAR_FIELD(absent_on_null);
907+
COMPARE_SCALAR_FIELD(unique);
908+
909+
return true;
910+
}
911+
912+
staticbool
913+
_equalJsonOutput(constJsonOutput*a,constJsonOutput*b)
914+
{
915+
COMPARE_NODE_FIELD(typeName);
916+
COMPARE_NODE_FIELD(returning);
917+
918+
return true;
919+
}
920+
921+
staticbool
922+
_equalJsonArrayConstructor(constJsonArrayConstructor*a,
923+
constJsonArrayConstructor*b)
924+
{
925+
COMPARE_NODE_FIELD(exprs);
926+
COMPARE_NODE_FIELD(output);
927+
COMPARE_SCALAR_FIELD(absent_on_null);
928+
COMPARE_LOCATION_FIELD(location);
929+
930+
return true;
931+
}
932+
933+
staticbool
934+
_equalJsonArrayAgg(constJsonArrayAgg*a,constJsonArrayAgg*b)
935+
{
936+
COMPARE_NODE_FIELD(constructor);
937+
COMPARE_NODE_FIELD(arg);
938+
COMPARE_SCALAR_FIELD(absent_on_null);
939+
940+
return true;
941+
}
942+
943+
staticbool
944+
_equalJsonArrayQueryConstructor(constJsonArrayQueryConstructor*a,
945+
constJsonArrayQueryConstructor*b)
946+
{
947+
COMPARE_NODE_FIELD(query);
948+
COMPARE_NODE_FIELD(output);
949+
COMPARE_NODE_FIELD(format);
950+
COMPARE_SCALAR_FIELD(absent_on_null);
951+
COMPARE_LOCATION_FIELD(location);
952+
953+
return true;
954+
}
955+
866956
/*
867957
* Stuff from pathnodes.h
868958
*/
@@ -3815,6 +3905,30 @@ equal(const void *a, const void *b)
38153905
caseT_PartitionCmd:
38163906
retval=_equalPartitionCmd(a,b);
38173907
break;
3908+
caseT_JsonKeyValue:
3909+
retval=_equalJsonKeyValue(a,b);
3910+
break;
3911+
caseT_JsonObjectConstructor:
3912+
retval=_equalJsonObjectConstructor(a,b);
3913+
break;
3914+
caseT_JsonAggConstructor:
3915+
retval=_equalJsonAggConstructor(a,b);
3916+
break;
3917+
caseT_JsonObjectAgg:
3918+
retval=_equalJsonObjectAgg(a,b);
3919+
break;
3920+
caseT_JsonOutput:
3921+
retval=_equalJsonOutput(a,b);
3922+
break;
3923+
caseT_JsonArrayConstructor:
3924+
retval=_equalJsonArrayConstructor(a,b);
3925+
break;
3926+
caseT_JsonArrayQueryConstructor:
3927+
retval=_equalJsonArrayQueryConstructor(a,b);
3928+
break;
3929+
caseT_JsonArrayAgg:
3930+
retval=_equalJsonArrayAgg(a,b);
3931+
break;
38183932

38193933
default:
38203934
elog(ERROR,"unrecognized node type: %d",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp