15
15
* Portions Copyright (c) 1994, Regents of the University of California
16
16
*
17
17
* IDENTIFICATION
18
- * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.401 2008/08/22 00:16:03 tgl Exp $
18
+ * $PostgreSQL: pgsql/src/backend/nodes/copyfuncs.c,v 1.402 2008/08/28 23:09:45 tgl Exp $
19
19
*
20
20
*-------------------------------------------------------------------------
21
21
*/
58
58
memcpy(newnode->fldname, from->fldname, _size); \
59
59
} while (0)
60
60
61
+ /* Copy a parse location field (for Copy, this is same as scalar case) */
62
+ #define COPY_LOCATION_FIELD (fldname ) \
63
+ (newnode->fldname = from->fldname)
64
+
61
65
62
66
/* ****************************************************************
63
67
* plannodes.h copy functions
@@ -761,6 +765,7 @@ _copyVar(Var *from)
761
765
COPY_SCALAR_FIELD (varlevelsup );
762
766
COPY_SCALAR_FIELD (varnoold );
763
767
COPY_SCALAR_FIELD (varoattno );
768
+ COPY_LOCATION_FIELD (location );
764
769
765
770
return newnode ;
766
771
}
@@ -797,6 +802,7 @@ _copyConst(Const *from)
797
802
798
803
COPY_SCALAR_FIELD (constisnull );
799
804
COPY_SCALAR_FIELD (constbyval );
805
+ COPY_LOCATION_FIELD (location );
800
806
801
807
return newnode ;
802
808
}
@@ -813,6 +819,7 @@ _copyParam(Param *from)
813
819
COPY_SCALAR_FIELD (paramid );
814
820
COPY_SCALAR_FIELD (paramtype );
815
821
COPY_SCALAR_FIELD (paramtypmod );
822
+ COPY_LOCATION_FIELD (location );
816
823
817
824
return newnode ;
818
825
}
@@ -831,6 +838,7 @@ _copyAggref(Aggref *from)
831
838
COPY_SCALAR_FIELD (agglevelsup );
832
839
COPY_SCALAR_FIELD (aggstar );
833
840
COPY_SCALAR_FIELD (aggdistinct );
841
+ COPY_LOCATION_FIELD (location );
834
842
835
843
return newnode ;
836
844
}
@@ -867,6 +875,7 @@ _copyFuncExpr(FuncExpr *from)
867
875
COPY_SCALAR_FIELD (funcretset );
868
876
COPY_SCALAR_FIELD (funcformat );
869
877
COPY_NODE_FIELD (args );
878
+ COPY_LOCATION_FIELD (location );
870
879
871
880
return newnode ;
872
881
}
@@ -884,6 +893,7 @@ _copyOpExpr(OpExpr *from)
884
893
COPY_SCALAR_FIELD (opresulttype );
885
894
COPY_SCALAR_FIELD (opretset );
886
895
COPY_NODE_FIELD (args );
896
+ COPY_LOCATION_FIELD (location );
887
897
888
898
return newnode ;
889
899
}
@@ -901,6 +911,7 @@ _copyDistinctExpr(DistinctExpr *from)
901
911
COPY_SCALAR_FIELD (opresulttype );
902
912
COPY_SCALAR_FIELD (opretset );
903
913
COPY_NODE_FIELD (args );
914
+ COPY_LOCATION_FIELD (location );
904
915
905
916
return newnode ;
906
917
}
@@ -917,6 +928,7 @@ _copyScalarArrayOpExpr(ScalarArrayOpExpr *from)
917
928
COPY_SCALAR_FIELD (opfuncid );
918
929
COPY_SCALAR_FIELD (useOr );
919
930
COPY_NODE_FIELD (args );
931
+ COPY_LOCATION_FIELD (location );
920
932
921
933
return newnode ;
922
934
}
@@ -931,6 +943,7 @@ _copyBoolExpr(BoolExpr *from)
931
943
932
944
COPY_SCALAR_FIELD (boolop );
933
945
COPY_NODE_FIELD (args );
946
+ COPY_LOCATION_FIELD (location );
934
947
935
948
return newnode ;
936
949
}
@@ -947,6 +960,7 @@ _copySubLink(SubLink *from)
947
960
COPY_NODE_FIELD (testexpr );
948
961
COPY_NODE_FIELD (operName );
949
962
COPY_NODE_FIELD (subselect );
963
+ COPY_LOCATION_FIELD (location );
950
964
951
965
return newnode ;
952
966
}
@@ -1032,6 +1046,7 @@ _copyRelabelType(RelabelType *from)
1032
1046
COPY_SCALAR_FIELD (resulttype );
1033
1047
COPY_SCALAR_FIELD (resulttypmod );
1034
1048
COPY_SCALAR_FIELD (relabelformat );
1049
+ COPY_LOCATION_FIELD (location );
1035
1050
1036
1051
return newnode ;
1037
1052
}
@@ -1047,6 +1062,7 @@ _copyCoerceViaIO(CoerceViaIO *from)
1047
1062
COPY_NODE_FIELD (arg );
1048
1063
COPY_SCALAR_FIELD (resulttype );
1049
1064
COPY_SCALAR_FIELD (coerceformat );
1065
+ COPY_LOCATION_FIELD (location );
1050
1066
1051
1067
return newnode ;
1052
1068
}
@@ -1065,6 +1081,7 @@ _copyArrayCoerceExpr(ArrayCoerceExpr *from)
1065
1081
COPY_SCALAR_FIELD (resulttypmod );
1066
1082
COPY_SCALAR_FIELD (isExplicit );
1067
1083
COPY_SCALAR_FIELD (coerceformat );
1084
+ COPY_LOCATION_FIELD (location );
1068
1085
1069
1086
return newnode ;
1070
1087
}
@@ -1080,6 +1097,7 @@ _copyConvertRowtypeExpr(ConvertRowtypeExpr *from)
1080
1097
COPY_NODE_FIELD (arg );
1081
1098
COPY_SCALAR_FIELD (resulttype );
1082
1099
COPY_SCALAR_FIELD (convertformat );
1100
+ COPY_LOCATION_FIELD (location );
1083
1101
1084
1102
return newnode ;
1085
1103
}
@@ -1096,6 +1114,7 @@ _copyCaseExpr(CaseExpr *from)
1096
1114
COPY_NODE_FIELD (arg );
1097
1115
COPY_NODE_FIELD (args );
1098
1116
COPY_NODE_FIELD (defresult );
1117
+ COPY_LOCATION_FIELD (location );
1099
1118
1100
1119
return newnode ;
1101
1120
}
@@ -1110,6 +1129,7 @@ _copyCaseWhen(CaseWhen *from)
1110
1129
1111
1130
COPY_NODE_FIELD (expr );
1112
1131
COPY_NODE_FIELD (result );
1132
+ COPY_LOCATION_FIELD (location );
1113
1133
1114
1134
return newnode ;
1115
1135
}
@@ -1140,6 +1160,7 @@ _copyArrayExpr(ArrayExpr *from)
1140
1160
COPY_SCALAR_FIELD (element_typeid );
1141
1161
COPY_NODE_FIELD (elements );
1142
1162
COPY_SCALAR_FIELD (multidims );
1163
+ COPY_LOCATION_FIELD (location );
1143
1164
1144
1165
return newnode ;
1145
1166
}
@@ -1155,6 +1176,7 @@ _copyRowExpr(RowExpr *from)
1155
1176
COPY_NODE_FIELD (args );
1156
1177
COPY_SCALAR_FIELD (row_typeid );
1157
1178
COPY_SCALAR_FIELD (row_format );
1179
+ COPY_LOCATION_FIELD (location );
1158
1180
1159
1181
return newnode ;
1160
1182
}
@@ -1186,6 +1208,7 @@ _copyCoalesceExpr(CoalesceExpr *from)
1186
1208
1187
1209
COPY_SCALAR_FIELD (coalescetype );
1188
1210
COPY_NODE_FIELD (args );
1211
+ COPY_LOCATION_FIELD (location );
1189
1212
1190
1213
return newnode ;
1191
1214
}
@@ -1201,6 +1224,7 @@ _copyMinMaxExpr(MinMaxExpr *from)
1201
1224
COPY_SCALAR_FIELD (minmaxtype );
1202
1225
COPY_SCALAR_FIELD (op );
1203
1226
COPY_NODE_FIELD (args );
1227
+ COPY_LOCATION_FIELD (location );
1204
1228
1205
1229
return newnode ;
1206
1230
}
@@ -1221,6 +1245,7 @@ _copyXmlExpr(XmlExpr *from)
1221
1245
COPY_SCALAR_FIELD (xmloption );
1222
1246
COPY_SCALAR_FIELD (type );
1223
1247
COPY_SCALAR_FIELD (typmod );
1248
+ COPY_LOCATION_FIELD (location );
1224
1249
1225
1250
return newnode ;
1226
1251
}
@@ -1238,6 +1263,7 @@ _copyNullIfExpr(NullIfExpr *from)
1238
1263
COPY_SCALAR_FIELD (opresulttype );
1239
1264
COPY_SCALAR_FIELD (opretset );
1240
1265
COPY_NODE_FIELD (args );
1266
+ COPY_LOCATION_FIELD (location );
1241
1267
1242
1268
return newnode ;
1243
1269
}
@@ -1282,6 +1308,7 @@ _copyCoerceToDomain(CoerceToDomain *from)
1282
1308
COPY_SCALAR_FIELD (resulttype );
1283
1309
COPY_SCALAR_FIELD (resulttypmod );
1284
1310
COPY_SCALAR_FIELD (coercionformat );
1311
+ COPY_LOCATION_FIELD (location );
1285
1312
1286
1313
return newnode ;
1287
1314
}
@@ -1296,6 +1323,7 @@ _copyCoerceToDomainValue(CoerceToDomainValue *from)
1296
1323
1297
1324
COPY_SCALAR_FIELD (typeId );
1298
1325
COPY_SCALAR_FIELD (typeMod );
1326
+ COPY_LOCATION_FIELD (location );
1299
1327
1300
1328
return newnode ;
1301
1329
}
@@ -1310,6 +1338,7 @@ _copySetToDefault(SetToDefault *from)
1310
1338
1311
1339
COPY_SCALAR_FIELD (typeId );
1312
1340
COPY_SCALAR_FIELD (typeMod );
1341
+ COPY_LOCATION_FIELD (location );
1313
1342
1314
1343
return newnode ;
1315
1344
}
@@ -1595,7 +1624,7 @@ _copyAExpr(A_Expr *from)
1595
1624
COPY_NODE_FIELD (name );
1596
1625
COPY_NODE_FIELD (lexpr );
1597
1626
COPY_NODE_FIELD (rexpr );
1598
- COPY_SCALAR_FIELD (location );
1627
+ COPY_LOCATION_FIELD (location );
1599
1628
1600
1629
return newnode ;
1601
1630
}
@@ -1606,7 +1635,7 @@ _copyColumnRef(ColumnRef *from)
1606
1635
ColumnRef * newnode = makeNode (ColumnRef );
1607
1636
1608
1637
COPY_NODE_FIELD (fields );
1609
- COPY_SCALAR_FIELD (location );
1638
+ COPY_LOCATION_FIELD (location );
1610
1639
1611
1640
return newnode ;
1612
1641
}
@@ -1617,6 +1646,7 @@ _copyParamRef(ParamRef *from)
1617
1646
ParamRef * newnode = makeNode (ParamRef );
1618
1647
1619
1648
COPY_SCALAR_FIELD (number );
1649
+ COPY_LOCATION_FIELD (location );
1620
1650
1621
1651
return newnode ;
1622
1652
}
@@ -1647,6 +1677,8 @@ _copyAConst(A_Const *from)
1647
1677
break ;
1648
1678
}
1649
1679
1680
+ COPY_LOCATION_FIELD (location );
1681
+
1650
1682
return newnode ;
1651
1683
}
1652
1684
@@ -1660,7 +1692,7 @@ _copyFuncCall(FuncCall *from)
1660
1692
COPY_SCALAR_FIELD (agg_star );
1661
1693
COPY_SCALAR_FIELD (agg_distinct );
1662
1694
COPY_SCALAR_FIELD (func_variadic );
1663
- COPY_SCALAR_FIELD (location );
1695
+ COPY_LOCATION_FIELD (location );
1664
1696
1665
1697
return newnode ;
1666
1698
}
@@ -1693,6 +1725,7 @@ _copyA_ArrayExpr(A_ArrayExpr *from)
1693
1725
A_ArrayExpr * newnode = makeNode (A_ArrayExpr );
1694
1726
1695
1727
COPY_NODE_FIELD (elements );
1728
+ COPY_LOCATION_FIELD (location );
1696
1729
1697
1730
return newnode ;
1698
1731
}
@@ -1705,7 +1738,7 @@ _copyResTarget(ResTarget *from)
1705
1738
COPY_STRING_FIELD (name );
1706
1739
COPY_NODE_FIELD (indirection );
1707
1740
COPY_NODE_FIELD (val );
1708
- COPY_SCALAR_FIELD (location );
1741
+ COPY_LOCATION_FIELD (location );
1709
1742
1710
1743
return newnode ;
1711
1744
}
@@ -1722,7 +1755,7 @@ _copyTypeName(TypeName *from)
1722
1755
COPY_NODE_FIELD (typmods );
1723
1756
COPY_SCALAR_FIELD (typemod );
1724
1757
COPY_NODE_FIELD (arrayBounds );
1725
- COPY_SCALAR_FIELD (location );
1758
+ COPY_LOCATION_FIELD (location );
1726
1759
1727
1760
return newnode ;
1728
1761
}
@@ -1770,6 +1803,7 @@ _copyTypeCast(TypeCast *from)
1770
1803
1771
1804
COPY_NODE_FIELD (arg );
1772
1805
COPY_NODE_FIELD (typename );
1806
+ COPY_LOCATION_FIELD (location );
1773
1807
1774
1808
return newnode ;
1775
1809
}
@@ -1852,6 +1886,7 @@ _copyXmlSerialize(XmlSerialize *from)
1852
1886
COPY_SCALAR_FIELD (xmloption );
1853
1887
COPY_NODE_FIELD (expr );
1854
1888
COPY_NODE_FIELD (typename );
1889
+ COPY_LOCATION_FIELD (location );
1855
1890
1856
1891
return newnode ;
1857
1892
}
0 commit comments