- Notifications
You must be signed in to change notification settings - Fork4.9k
Commit844fe9f
committed
Add the ability for the core grammar to have more than one parse target.
This patch essentially allows gram.y to implement a family of relatedsyntax trees, rather than necessarily always parsing a list of SQLstatements. raw_parser() gains a new argument, enum RawParseMode,to say what to do. As proof of concept, add a mode that just parsesa TypeName without any other decoration, and use that to greatlysimplify typeStringToTypeName().In addition, invent a new SPI entry point SPI_prepare_extended() toallow SPI users (particularly plpgsql) to get at this new functionality.In hopes of making this the last variant of SPI_prepare(), set up itsadditional arguments as a struct rather than direct arguments, andpromise that future additions to the struct can default to zero.SPI_prepare_cursor() and SPI_prepare_params() can perhaps go away atsome point.Discussion:https://postgr.es/m/4165684.1607707277@sss.pgh.pa.us1 parentb49154b commit844fe9f
File tree
14 files changed
+268
-83
lines changed- doc/src/sgml
- src
- backend
- commands
- executor
- parser
- tcop
- include
- executor
- parser
- interfaces/ecpg/preproc
- pl/plpgsql/src
14 files changed
+268
-83
lines changedLines changed: 126 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1105 | 1105 |
| |
1106 | 1106 |
| |
1107 | 1107 |
| |
| 1108 | + | |
| 1109 | + | |
| 1110 | + | |
| 1111 | + | |
| 1112 | + | |
1108 | 1113 |
| |
1109 | 1114 |
| |
1110 | 1115 |
| |
| |||
1176 | 1181 |
| |
1177 | 1182 |
| |
1178 | 1183 |
| |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
| 1215 | + | |
| 1216 | + | |
| 1217 | + | |
| 1218 | + | |
| 1219 | + | |
| 1220 | + | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
| 1229 | + | |
| 1230 | + | |
| 1231 | + | |
| 1232 | + | |
| 1233 | + | |
| 1234 | + | |
| 1235 | + | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
| 1241 | + | |
| 1242 | + | |
| 1243 | + | |
| 1244 | + | |
| 1245 | + | |
| 1246 | + | |
| 1247 | + | |
| 1248 | + | |
| 1249 | + | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
| 1264 | + | |
| 1265 | + | |
| 1266 | + | |
| 1267 | + | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
| 1274 | + | |
| 1275 | + | |
| 1276 | + | |
| 1277 | + | |
| 1278 | + | |
| 1279 | + | |
| 1280 | + | |
| 1281 | + | |
| 1282 | + | |
| 1283 | + | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
| 1288 | + | |
| 1289 | + | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
| 1293 | + | |
| 1294 | + | |
| 1295 | + | |
| 1296 | + | |
| 1297 | + | |
| 1298 | + | |
| 1299 | + | |
1179 | 1300 |
| |
1180 | 1301 |
| |
1181 | 1302 |
| |
| |||
1208 | 1329 |
| |
1209 | 1330 |
| |
1210 | 1331 |
| |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
1211 | 1337 |
| |
1212 | 1338 |
| |
1213 | 1339 |
| |
|
Lines changed: 1 addition & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
12095 | 12095 |
| |
12096 | 12096 |
| |
12097 | 12097 |
| |
12098 |
| - | |
| 12098 | + | |
12099 | 12099 |
| |
12100 | 12100 |
| |
12101 | 12101 |
| |
|
Lines changed: 49 additions & 3 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
508 | 508 |
| |
509 | 509 |
| |
510 | 510 |
| |
| 511 | + | |
511 | 512 |
| |
512 | 513 |
| |
513 | 514 |
| |
| |||
681 | 682 |
| |
682 | 683 |
| |
683 | 684 |
| |
| 685 | + | |
684 | 686 |
| |
685 | 687 |
| |
686 | 688 |
| |
| |||
726 | 728 |
| |
727 | 729 |
| |
728 | 730 |
| |
| 731 | + | |
729 | 732 |
| |
730 | 733 |
| |
731 | 734 |
| |
| |||
768 | 771 |
| |
769 | 772 |
| |
770 | 773 |
| |
| 774 | + | |
771 | 775 |
| |
772 | 776 |
| |
773 | 777 |
| |
| |||
784 | 788 |
| |
785 | 789 |
| |
786 | 790 |
| |
| 791 | + | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
| 814 | + | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
| 823 | + | |
| 824 | + | |
| 825 | + | |
| 826 | + | |
787 | 827 |
| |
788 | 828 |
| |
789 | 829 |
| |
| |||
805 | 845 |
| |
806 | 846 |
| |
807 | 847 |
| |
| 848 | + | |
808 | 849 |
| |
809 | 850 |
| |
810 | 851 |
| |
| |||
1340 | 1381 |
| |
1341 | 1382 |
| |
1342 | 1383 |
| |
| 1384 | + | |
1343 | 1385 |
| |
1344 | 1386 |
| |
1345 | 1387 |
| |
| |||
1400 | 1442 |
| |
1401 | 1443 |
| |
1402 | 1444 |
| |
| 1445 | + | |
1403 | 1446 |
| |
1404 | 1447 |
| |
1405 | 1448 |
| |
| |||
2036 | 2079 |
| |
2037 | 2080 |
| |
2038 | 2081 |
| |
2039 |
| - | |
| 2082 | + | |
| 2083 | + | |
2040 | 2084 |
| |
2041 | 2085 |
| |
2042 | 2086 |
| |
| |||
2063 | 2107 |
| |
2064 | 2108 |
| |
2065 | 2109 |
| |
2066 |
| - | |
| 2110 | + | |
2067 | 2111 |
| |
2068 | 2112 |
| |
2069 | 2113 |
| |
| |||
2168 | 2212 |
| |
2169 | 2213 |
| |
2170 | 2214 |
| |
2171 |
| - | |
| 2215 | + | |
2172 | 2216 |
| |
2173 | 2217 |
| |
2174 | 2218 |
| |
| |||
2866 | 2910 |
| |
2867 | 2911 |
| |
2868 | 2912 |
| |
| 2913 | + | |
2869 | 2914 |
| |
2870 | 2915 |
| |
2871 | 2916 |
| |
| |||
2930 | 2975 |
| |
2931 | 2976 |
| |
2932 | 2977 |
| |
| 2978 | + | |
2933 | 2979 |
| |
2934 | 2980 |
| |
2935 | 2981 |
| |
|
Lines changed: 20 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
384 | 384 |
| |
385 | 385 |
| |
386 | 386 |
| |
387 |
| - | |
| 387 | + | |
388 | 388 |
| |
389 | 389 |
| |
390 | 390 |
| |
| |||
723 | 723 |
| |
724 | 724 |
| |
725 | 725 |
| |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
726 | 735 |
| |
727 | 736 |
| |
728 | 737 |
| |
| |||
787 | 796 |
| |
788 | 797 |
| |
789 | 798 |
| |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
790 | 803 |
| |
791 |
| - | |
| 804 | + | |
| 805 | + | |
792 | 806 |
| |
793 | 807 |
| |
794 | 808 |
| |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
795 | 813 |
| |
796 | 814 |
| |
797 | 815 |
| |
|
Lines changed: 3 additions & 2 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1541 | 1541 |
| |
1542 | 1542 |
| |
1543 | 1543 |
| |
1544 |
| - | |
| 1544 | + | |
1545 | 1545 |
| |
1546 | 1546 |
| |
1547 | 1547 |
| |
| |||
2380 | 2380 |
| |
2381 | 2381 |
| |
2382 | 2382 |
| |
2383 |
| - | |
| 2383 | + | |
| 2384 | + | |
2384 | 2385 |
| |
2385 | 2386 |
| |
2386 | 2387 |
| |
|
0 commit comments
Comments
(0)