Skip to content

Commit 152d33b

Browse files
committed
Improve slightly misleading comments in nodeFuncs.c
There were some comments in nodeFuncs.c that, depending on your interpretation of the word "result", could lead you to believe that the comments were badly copied and pasted from somewhere else. If you thought of "result" as the return value of the function that the comment is written in, then you'd be misled. However, if you'd correctly interpreted "result" to mean the result type of the given node type, you'd not have seen any issues. Here we do a small cleanup to try to prevent any future misinterpretations. Per wording suggestion from Tom Lane. Reviewed-by: Tom Lane Discussion: https://postgr.es/m/CAApHDvp+Bw=2Qiu5=uXMKfC7gd0+B=4JvexVgGJU=am2g9a1CA@mail.gmail.com
1 parent 9cae39b commit 152d33b

File tree

1 file changed

+44
-25
lines changed

1 file changed

+44
-25
lines changed

src/backend/nodes/nodeFuncs.c

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -802,10 +802,12 @@ exprCollation(const Node *expr)
802802
coll = ((const NullIfExpr *) expr)->opcollid;
803803
break;
804804
case T_ScalarArrayOpExpr:
805-
coll = InvalidOid; /* result is always boolean */
805+
/* ScalarArrayOpExpr's result is boolean ... */
806+
coll = InvalidOid; /* ... so it has no collation */
806807
break;
807808
case T_BoolExpr:
808-
coll = InvalidOid; /* result is always boolean */
809+
/* BoolExpr's result is boolean ... */
810+
coll = InvalidOid; /* ... so it has no collation */
809811
break;
810812
case T_SubLink:
811813
{
@@ -827,8 +829,8 @@ exprCollation(const Node *expr)
827829
}
828830
else
829831
{
830-
/* otherwise, result is RECORD or BOOLEAN */
831-
coll = InvalidOid;
832+
/* otherwise, SubLink's result is RECORD or BOOLEAN */
833+
coll = InvalidOid; /* ... so it has no collation */
832834
}
833835
}
834836
break;
@@ -845,8 +847,8 @@ exprCollation(const Node *expr)
845847
}
846848
else
847849
{
848-
/* otherwise, result is RECORD or BOOLEAN */
849-
coll = InvalidOid;
850+
/* otherwise, SubPlan's result is RECORD or BOOLEAN */
851+
coll = InvalidOid; /* ... so it has no collation */
850852
}
851853
}
852854
break;
@@ -862,7 +864,8 @@ exprCollation(const Node *expr)
862864
coll = ((const FieldSelect *) expr)->resultcollid;
863865
break;
864866
case T_FieldStore:
865-
coll = InvalidOid; /* result is always composite */
867+
/* FieldStore's result is composite ... */
868+
coll = InvalidOid; /* ... so it has no collation */
866869
break;
867870
case T_RelabelType:
868871
coll = ((const RelabelType *) expr)->resultcollid;
@@ -874,7 +877,8 @@ exprCollation(const Node *expr)
874877
coll = ((const ArrayCoerceExpr *) expr)->resultcollid;
875878
break;
876879
case T_ConvertRowtypeExpr:
877-
coll = InvalidOid; /* result is always composite */
880+
/* ConvertRowtypeExpr's result is composite ... */
881+
coll = InvalidOid; /* ... so it has no collation */
878882
break;
879883
case T_CollateExpr:
880884
coll = ((const CollateExpr *) expr)->collOid;
@@ -889,10 +893,12 @@ exprCollation(const Node *expr)
889893
coll = ((const ArrayExpr *) expr)->array_collid;
890894
break;
891895
case T_RowExpr:
892-
coll = InvalidOid; /* result is always composite */
896+
/* RowExpr's result is composite ... */
897+
coll = InvalidOid; /* ... so it has no collation */
893898
break;
894899
case T_RowCompareExpr:
895-
coll = InvalidOid; /* result is always boolean */
900+
/* RowCompareExpr's result is boolean ... */
901+
coll = InvalidOid; /* ... so it has no collation */
896902
break;
897903
case T_CoalesceExpr:
898904
coll = ((const CoalesceExpr *) expr)->coalescecollid;
@@ -920,10 +926,12 @@ exprCollation(const Node *expr)
920926
coll = InvalidOid;
921927
break;
922928
case T_NullTest:
923-
coll = InvalidOid; /* result is always boolean */
929+
/* NullTest's result is boolean ... */
930+
coll = InvalidOid; /* ... so it has no collation */
924931
break;
925932
case T_BooleanTest:
926-
coll = InvalidOid; /* result is always boolean */
933+
/* BooleanTest's result is boolean ... */
934+
coll = InvalidOid; /* ... so it has no collation */
927935
break;
928936
case T_CoerceToDomain:
929937
coll = ((const CoerceToDomain *) expr)->resultcollid;
@@ -935,10 +943,12 @@ exprCollation(const Node *expr)
935943
coll = ((const SetToDefault *) expr)->collation;
936944
break;
937945
case T_CurrentOfExpr:
938-
coll = InvalidOid; /* result is always boolean */
946+
/* CurrentOfExpr's result is boolean ... */
947+
coll = InvalidOid; /* ... so it has no collation */
939948
break;
940949
case T_NextValueExpr:
941-
coll = InvalidOid; /* result is always an integer type */
950+
/* NextValueExpr's result is an integer type ... */
951+
coll = InvalidOid; /* ... so it has no collation */
942952
break;
943953
case T_InferenceElem:
944954
coll = exprCollation((Node *) ((const InferenceElem *) expr)->expr);
@@ -1050,10 +1060,12 @@ exprSetCollation(Node *expr, Oid collation)
10501060
((NullIfExpr *) expr)->opcollid = collation;
10511061
break;
10521062
case T_ScalarArrayOpExpr:
1053-
Assert(!OidIsValid(collation)); /* result is always boolean */
1063+
/* ScalarArrayOpExpr's result is boolean ... */
1064+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
10541065
break;
10551066
case T_BoolExpr:
1056-
Assert(!OidIsValid(collation)); /* result is always boolean */
1067+
/* BoolExpr's result is boolean ... */
1068+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
10571069
break;
10581070
case T_SubLink:
10591071
#ifdef USE_ASSERT_CHECKING
@@ -1085,7 +1097,8 @@ exprSetCollation(Node *expr, Oid collation)
10851097
((FieldSelect *) expr)->resultcollid = collation;
10861098
break;
10871099
case T_FieldStore:
1088-
Assert(!OidIsValid(collation)); /* result is always composite */
1100+
/* FieldStore's result is composite ... */
1101+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
10891102
break;
10901103
case T_RelabelType:
10911104
((RelabelType *) expr)->resultcollid = collation;
@@ -1097,7 +1110,8 @@ exprSetCollation(Node *expr, Oid collation)
10971110
((ArrayCoerceExpr *) expr)->resultcollid = collation;
10981111
break;
10991112
case T_ConvertRowtypeExpr:
1100-
Assert(!OidIsValid(collation)); /* result is always composite */
1113+
/* ConvertRowtypeExpr's result is composite ... */
1114+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11011115
break;
11021116
case T_CaseExpr:
11031117
((CaseExpr *) expr)->casecollid = collation;
@@ -1106,10 +1120,12 @@ exprSetCollation(Node *expr, Oid collation)
11061120
((ArrayExpr *) expr)->array_collid = collation;
11071121
break;
11081122
case T_RowExpr:
1109-
Assert(!OidIsValid(collation)); /* result is always composite */
1123+
/* RowExpr's result is composite ... */
1124+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11101125
break;
11111126
case T_RowCompareExpr:
1112-
Assert(!OidIsValid(collation)); /* result is always boolean */
1127+
/* RowCompareExpr's result is boolean ... */
1128+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11131129
break;
11141130
case T_CoalesceExpr:
11151131
((CoalesceExpr *) expr)->coalescecollid = collation;
@@ -1128,10 +1144,12 @@ exprSetCollation(Node *expr, Oid collation)
11281144
(collation == InvalidOid));
11291145
break;
11301146
case T_NullTest:
1131-
Assert(!OidIsValid(collation)); /* result is always boolean */
1147+
/* NullTest's result is boolean ... */
1148+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11321149
break;
11331150
case T_BooleanTest:
1134-
Assert(!OidIsValid(collation)); /* result is always boolean */
1151+
/* BooleanTest's result is boolean ... */
1152+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11351153
break;
11361154
case T_CoerceToDomain:
11371155
((CoerceToDomain *) expr)->resultcollid = collation;
@@ -1143,11 +1161,12 @@ exprSetCollation(Node *expr, Oid collation)
11431161
((SetToDefault *) expr)->collation = collation;
11441162
break;
11451163
case T_CurrentOfExpr:
1146-
Assert(!OidIsValid(collation)); /* result is always boolean */
1164+
/* CurrentOfExpr's result is boolean ... */
1165+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11471166
break;
11481167
case T_NextValueExpr:
1149-
Assert(!OidIsValid(collation)); /* result is always an integer
1150-
* type */
1168+
/* NextValueExpr's result is an integer type ... */
1169+
Assert(!OidIsValid(collation)); /* ... so never set a collation */
11511170
break;
11521171
default:
11531172
elog(ERROR, "unrecognized node type: %d", (int) nodeTag(expr));

0 commit comments

Comments
 (0)