aboutsummaryrefslogtreecommitdiff
path: root/src/backend/nodes/.nodeFuncs.c.swp
blob: 6f426e85cea462a38c803484fdd6df9f2e1da7dc (plain)
ofshex dumpascii
0000 62 30 56 49 4d 20 37 2e 33 00 00 00 00 10 00 00 65 d4 20 57 1c f2 ff 03 59 2c 00 00 72 68 61 61 b0VIM.7.3.......e..W....Y,..rhaa
0020 73 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 s...............................
0040 00 00 00 00 52 6f 62 65 72 74 73 2d 4d 42 50 2d 32 2e 66 69 6f 73 2d 72 6f 75 74 65 72 2e 68 6f ....Roberts-MBP-2.fios-router.ho
0060 6d 65 00 00 00 00 00 00 00 00 00 00 7e 72 68 61 61 73 2f 70 67 73 71 6c 2f 73 72 63 2f 62 61 63 me..........~rhaas/pgsql/src/bac
0080 6b 65 6e 64 2f 6e 6f 64 65 73 2f 6e 6f 64 65 46 75 6e 63 73 2e 63 00 00 00 00 00 00 00 00 00 00 kend/nodes/nodeFuncs.c..........
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 75 74 66 2d 38 0d 00 33 32 31 30 00 00 00 00 23 22 21 20 13 12 55 00 .........utf-8..3210....#"!...U.
0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
04e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
05e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1000 74 70 1c 00 7f 00 00 00 02 00 00 00 00 00 00 00 82 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 tp..............................
1020 01 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 ................................
1040 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 7d 00 00 00 00 00 00 00 0b 01 00 00 00 00 00 00 ................}...............
1060 01 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 88 01 00 00 00 00 00 00 ................................
1080 01 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 85 00 00 00 00 00 00 00 0b 02 00 00 00 00 00 00 ................................
10a0 01 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 8e 00 00 00 00 00 00 00 90 02 00 00 00 00 00 00 ................................
10c0 01 00 00 00 00 00 00 00 09 00 00 00 00 00 00 00 7a 00 00 00 00 00 00 00 1e 03 00 00 00 00 00 00 ................z...............
10e0 01 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 8c 00 00 00 00 00 00 00 98 03 00 00 00 00 00 00 ................................
1100 01 00 00 00 00 00 00 00 0b 00 00 00 00 00 00 00 75 00 00 00 00 00 00 00 24 04 00 00 00 00 00 00 ................u.......$.......
1120 01 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 72 00 00 00 00 00 00 00 99 04 00 00 00 00 00 00 ................r...............
1140 01 00 00 00 00 00 00 00 0d 00 00 00 00 00 00 00 7b 00 00 00 00 00 00 00 0b 05 00 00 00 00 00 00 ................{...............
1160 01 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 79 00 00 00 00 00 00 00 86 05 00 00 00 00 00 00 ................y...............
1180 01 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 5c 00 00 00 00 00 00 00 ff 05 00 00 00 00 00 00 ................\...............
11a0 01 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 73 00 00 00 00 00 00 00 5b 06 00 00 00 00 00 00 ................s.......[.......
11c0 01 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 84 00 00 00 00 00 00 00 ce 06 00 00 00 00 00 00 ................................
11e0 01 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00 52 07 00 00 00 00 00 00 ........................R.......
1200 01 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 da 07 00 00 00 00 00 00 ................................
1220 01 00 00 00 00 00 00 00 14 00 00 00 00 00 00 00 57 00 00 00 00 00 00 00 5d 08 00 00 00 00 00 00 ................W.......].......
1240 01 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00 84 00 00 00 00 00 00 00 b4 08 00 00 00 00 00 00 ................................
1260 01 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 86 00 00 00 00 00 00 00 38 09 00 00 00 00 00 00 ........................8.......
1280 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 88 00 00 00 00 00 00 00 be 09 00 00 00 00 00 00 ................................
12a0 01 00 00 00 00 00 00 00 18 00 00 00 00 00 00 00 7e 00 00 00 00 00 00 00 46 0a 00 00 00 00 00 00 ................~.......F.......
12c0 01 00 00 00 00 00 00 00 19 00 00 00 00 00 00 00 6f 00 00 00 00 00 00 00 c4 0a 00 00 00 00 00 00 ................o...............
12e0 01 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 7f 00 00 00 00 00 00 00 33 0b 00 00 00 00 00 00 ........................3.......
1300 01 00 00 00 00 00 00 00 1b 00 00 00 00 00 00 00 8a 00 00 00 00 00 00 00 b2 0b 00 00 00 00 00 00 ................................
1320 01 00 00 00 00 00 00 00 1c 00 00 00 00 00 00 00 8d 00 00 00 00 00 00 00 3c 0c 00 00 00 00 00 00 ........................<.......
1340 01 00 00 00 00 00 00 00 1d 00 00 00 00 00 00 00 90 00 00 00 00 00 00 00 c9 0c 00 00 00 00 00 00 ................................
1360 01 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 87 00 00 00 00 00 00 00 59 0d 00 00 00 00 00 00 ........................Y.......
1380 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
18e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 61 64 00 00 05 00 00 00 29 02 00 00 00 10 00 00 82 00 00 00 00 00 00 00 b4 0f 00 00 b1 0f 00 00 ad......).......................
2020 a2 0f 00 00 6a 0f 00 00 67 0f 00 00 1e 0f 00 00 d6 0e 00 00 d3 0e 00 00 d0 0e 00 00 be 0e 00 00 ....j...g.......................
2040 9b 0e 00 00 98 0e 00 00 4c 0e 00 00 48 0e 00 00 32 0e 00 00 31 0e 00 00 0f 0e 00 00 f2 0d 00 00 ........L...H...2...1...........
2060 db 0d 00 00 be 0d 00 00 a1 0d 00 00 84 0d 00 00 68 0d 00 00 4c 0d 00 00 2f 0d 00 00 2e 0d 00 00 ................h...L.../.......
2080 2d 0d 00 00 e7 0c 00 00 bb 0c 00 00 77 0c 00 00 5b 0c 00 00 13 0c 00 00 e8 0b 00 00 e7 0b 00 00 -...........w...[...............
20a0 e6 0b 00 00 e3 0b 00 00 d5 0b 00 00 98 0b 00 00 94 0b 00 00 90 0b 00 00 75 0b 00 00 73 0b 00 00 ........................u...s...
20c0 66 0b 00 00 65 0b 00 00 59 0b 00 00 44 0b 00 00 43 0b 00 00 2b 0b 00 00 28 0b 00 00 1a 0b 00 00 f...e...Y...D...C...+...(.......
20e0 f1 0a 00 00 e7 0a 00 00 d7 0a 00 00 aa 0a 00 00 a0 0a 00 00 90 0a 00 00 63 0a 00 00 59 0a 00 00 ........................c...Y...
2100 48 0a 00 00 16 0a 00 00 0c 0a 00 00 f5 09 00 00 e2 09 00 00 d8 09 00 00 c3 09 00 00 93 09 00 00 H...............................
2120 89 09 00 00 76 09 00 00 71 09 00 00 39 09 00 00 38 09 00 00 fb 08 00 00 be 08 00 00 9a 08 00 00 ....v...q...9...8...............
2140 91 08 00 00 6e 08 00 00 69 08 00 00 5f 08 00 00 4c 08 00 00 17 08 00 00 0d 08 00 00 f6 07 00 00 ....n...i..._...L...............
2160 b5 07 00 00 ab 07 00 00 9a 07 00 00 69 07 00 00 5f 07 00 00 48 07 00 00 11 07 00 00 07 07 00 00 ............i..._...H...........
2180 f2 06 00 00 bd 06 00 00 b3 06 00 00 97 06 00 00 84 06 00 00 7a 06 00 00 67 06 00 00 54 06 00 00 ....................z...g...T...
21a0 4a 06 00 00 38 06 00 00 33 06 00 00 fe 05 00 00 fd 05 00 00 cd 05 00 00 a1 05 00 00 9b 05 00 00 J...8...3.......................
21c0 5c 05 00 00 27 05 00 00 0f 05 00 00 0e 05 00 00 e7 04 00 00 a7 04 00 00 6e 04 00 00 49 04 00 00 \...'...................n...I...
21e0 2c 04 00 00 01 04 00 00 d1 03 00 00 ca 03 00 00 9e 03 00 00 81 03 00 00 6b 03 00 00 3e 03 00 00 ,.......................k...>...
2200 ff 02 00 00 c6 02 00 00 bf 02 00 00 b9 02 00 00 81 02 00 00 7b 02 00 00 40 02 00 00 29 02 00 00 ....................{...@...)...
2220 28 02 00 00 00 00 00 00 00 09 09 09 09 09 74 79 70 65 20 3d 20 52 45 43 4f 52 44 4f 49 44 3b 00 (.............type.=.RECORDOID;.
2240 09 09 09 09 09 2f 2a 20 4d 55 4c 54 49 45 58 50 52 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6e 73 ...../*.MULTIEXPR.is.always.cons
2260 69 64 65 72 65 64 20 74 6f 20 72 65 74 75 72 6e 20 52 45 43 4f 52 44 20 2a 2f 00 09 09 09 09 7b idered.to.return.RECORD.*/.....{
2280 00 09 09 09 09 65 6c 73 65 20 69 66 20 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 .....else.if.(sublink->subLinkTy
22a0 70 65 20 3d 3d 20 4d 55 4c 54 49 45 58 50 52 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 7d 00 09 pe.==.MULTIEXPR_SUBLINK).....}..
22c0 09 09 09 09 7d 00 09 09 09 09 09 09 09 66 6f 72 6d 61 74 5f 74 79 70 65 5f 62 65 28 65 78 70 72 ....}........format_type_be(expr
22e0 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 74 65 6e 74 2d 3e 65 78 70 72 29 29 29 29 29 3b 00 09 Type((Node.*).tent->expr)))));..
2300 09 09 09 09 09 09 09 09 20 65 72 72 6d 73 67 28 22 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 .........errmsg("could.not.find.
2320 61 72 72 61 79 20 74 79 70 65 20 66 6f 72 20 64 61 74 61 20 74 79 70 65 20 25 73 22 2c 00 09 09 array.type.for.data.type.%s",...
2340 09 09 09 09 09 09 09 28 65 72 72 63 6f 64 65 28 45 52 52 43 4f 44 45 5f 55 4e 44 45 46 49 4e 45 .......(errcode(ERRCODE_UNDEFINE
2360 44 5f 4f 42 4a 45 43 54 29 2c 00 09 09 09 09 09 09 09 65 72 65 70 6f 72 74 28 45 52 52 4f 52 2c D_OBJECT),........ereport(ERROR,
2380 00 09 09 09 09 09 09 69 66 20 28 21 4f 69 64 49 73 56 61 6c 69 64 28 74 79 70 65 29 29 00 09 09 .......if.(!OidIsValid(type))...
23a0 09 09 09 09 74 79 70 65 20 3d 20 67 65 74 5f 70 72 6f 6d 6f 74 65 64 5f 61 72 72 61 79 5f 74 79 ....type.=.get_promoted_array_ty
23c0 70 65 28 74 79 70 65 29 3b 00 09 09 09 09 09 7b 00 09 09 09 09 09 69 66 20 28 73 75 62 6c 69 6e pe(type);......{......if.(sublin
23e0 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c 49 4e 4b 29 k->subLinkType.==.ARRAY_SUBLINK)
2400 00 09 09 09 09 09 74 79 70 65 20 3d 20 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 74 ......type.=.exprType((Node.*).t
2420 65 6e 74 2d 3e 65 78 70 72 29 3b 00 09 09 09 09 09 41 73 73 65 72 74 28 21 74 65 6e 74 2d 3e 72 ent->expr);......Assert(!tent->r
2440 65 73 6a 75 6e 6b 29 3b 00 09 09 09 09 09 41 73 73 65 72 74 28 49 73 41 28 74 65 6e 74 2c 20 54 esjunk);......Assert(IsA(tent,.T
2460 61 72 67 65 74 45 6e 74 72 79 29 29 3b 00 09 09 09 09 09 74 65 6e 74 20 3d 20 28 54 61 72 67 65 argetEntry));......tent.=.(Targe
2480 74 45 6e 74 72 79 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 71 74 72 65 65 2d 3e 74 61 72 67 65 74 tEntry.*).linitial(qtree->target
24a0 4c 69 73 74 29 3b 00 09 09 09 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 63 61 6e 6e 6f 74 List);.......elog(ERROR,."cannot
24c0 20 67 65 74 20 74 79 70 65 20 66 6f 72 20 75 6e 74 72 61 6e 73 66 6f 72 6d 65 64 20 73 75 62 6c .get.type.for.untransformed.subl
24e0 69 6e 6b 22 29 3b 00 09 09 09 09 09 69 66 20 28 21 71 74 72 65 65 20 7c 7c 20 21 49 73 41 28 71 ink");......if.(!qtree.||.!IsA(q
2500 74 72 65 65 2c 20 51 75 65 72 79 29 29 00 00 09 09 09 09 09 54 61 72 67 65 74 45 6e 74 72 79 20 tree,.Query)).......TargetEntry.
2520 2a 74 65 6e 74 3b 00 09 09 09 09 09 51 75 65 72 79 09 20 20 20 2a 71 74 72 65 65 20 3d 20 28 51 *tent;......Query....*qtree.=.(Q
2540 75 65 72 79 20 2a 29 20 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 73 65 6c 65 63 74 3b 00 09 09 09 09 uery.*).sublink->subselect;.....
2560 09 2f 2a 20 67 65 74 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 75 62 73 65 6c 65 63 ./*.get.the.type.of.the.subselec
2580 74 27 73 20 66 69 72 73 74 20 74 61 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b t's.first.target.column.*/.....{
25a0 00 09 09 09 09 09 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 ......sublink->subLinkType.==.AR
25c0 52 41 59 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 69 66 20 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 RAY_SUBLINK).....if.(sublink->su
25e0 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 bLinkType.==.EXPR_SUBLINK.||....
2600 09 09 63 6f 6e 73 74 20 53 75 62 4c 69 6e 6b 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 28 63 6f 6e 73 ..const.SubLink.*sublink.=.(cons
2620 74 20 53 75 62 4c 69 6e 6b 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 t.SubLink.*).expr;....{...case.T
2640 5f 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f _SubLink:....break;....type.=.BO
2660 4f 4c 4f 49 44 3b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 45 78 70 72 3a 00 09 09 09 62 72 65 OLOID;...case.T_BoolExpr:....bre
2680 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 09 09 63 61 73 65 20 54 5f ak;....type.=.BOOLOID;...case.T_
26a0 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ScalarArrayOpExpr:....break;....
26c0 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 4e 75 6c 6c 49 66 45 78 70 72 20 2a 29 20 65 78 70 type.=.((const.NullIfExpr.*).exp
26e0 72 29 2d 3e 6f 70 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 49 r)->opresulttype;...case.T_NullI
2700 66 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e fExpr:....break;....type.=.((con
2720 73 74 20 44 69 73 74 69 6e 63 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 72 65 73 75 st.DistinctExpr.*).expr)->opresu
2740 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 00 09 lttype;...case.T_DistinctExpr:..
2760 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 4f 70 45 78 70 ..break;....type.=.((const.OpExp
2780 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 r.*).expr)->opresulttype;...case
27a0 20 54 5f 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 65 .T_OpExpr:....break;....type.=.e
27c0 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 4e 61 6d 65 64 41 72 xprType((Node.*).((const.NamedAr
27e0 67 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 63 61 73 65 20 54 5f 4e gExpr.*).expr)->arg);...case.T_N
2800 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d amedArgExpr:....break;....type.=
2820 20 28 28 63 6f 6e 73 74 20 46 75 6e 63 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 66 75 6e 63 .((const.FuncExpr.*).expr)->func
2840 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 resulttype;...case.T_FuncExpr:..
2860 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 74 79 70 65 20 3d 20 61 72 72 61 79 72 ..break;....}......type.=.arrayr
2880 65 66 2d 3e 72 65 66 65 6c 65 6d 74 79 70 65 3b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 09 74 ef->refelemtype;.....else......t
28a0 79 70 65 20 3d 20 61 72 72 61 79 72 65 66 2d 3e 72 65 66 61 72 72 61 79 74 79 70 65 3b 00 09 09 ype.=.arrayref->refarraytype;...
28c0 09 09 69 66 20 28 61 72 72 61 79 72 65 66 2d 3e 72 65 66 6c 6f 77 65 72 69 6e 64 65 78 70 72 20 ..if.(arrayref->reflowerindexpr.
28e0 7c 7c 20 61 72 72 61 79 72 65 66 2d 3e 72 65 66 61 73 73 67 6e 65 78 70 72 29 00 09 09 09 09 2f ||.arrayref->refassgnexpr)...../
2900 2a 20 73 6c 69 63 65 20 61 6e 64 2f 6f 72 20 73 74 6f 72 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 *.slice.and/or.store.operations.
2920 79 69 65 6c 64 20 74 68 65 20 61 72 72 61 79 20 74 79 70 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e yield.the.array.type.*/......con
2940 73 74 20 41 72 72 61 79 52 65 66 20 2a 61 72 72 61 79 72 65 66 20 3d 20 28 63 6f 6e 73 74 20 41 st.ArrayRef.*arrayref.=.(const.A
2960 72 72 61 79 52 65 66 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 rrayRef.*).expr;....{...case.T_A
2980 72 72 61 79 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 rrayRef:....break;....type.=.((c
29a0 6f 6e 73 74 20 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 65 78 70 72 29 2d 3e 77 69 6e 74 79 70 onst.WindowFunc.*).expr)->wintyp
29c0 65 3b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b e;...case.T_WindowFunc:....break
29e0 3b 00 09 09 09 74 79 70 65 20 3d 20 49 4e 54 34 4f 49 44 3b 00 09 09 63 61 73 65 20 54 5f 47 72 ;....type.=.INT4OID;...case.T_Gr
2a00 6f 75 70 69 6e 67 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 oupingFunc:....break;....type.=.
2a20 28 28 63 6f 6e 73 74 20 41 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 61 67 67 6f 75 74 70 ((const.Aggref.*).expr)->aggoutp
2a40 75 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 41 67 67 72 65 66 3a 00 09 09 09 62 72 65 61 uttype;...case.T_Aggref:....brea
2a60 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 50 61 72 61 6d 20 2a 29 20 65 78 k;....type.=.((const.Param.*).ex
2a80 70 72 29 2d 3e 70 61 72 61 6d 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 50 61 72 61 6d 3a 00 pr)->paramtype;...case.T_Param:.
2aa0 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 6e 73 ...break;....type.=.((const.Cons
2ac0 74 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 6e 73 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f t.*).expr)->consttype;...case.T_
2ae0 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e Const:....break;....type.=.((con
2b00 73 74 20 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 76 61 72 74 79 70 65 3b 00 09 09 63 61 73 65 st.Var.*).expr)->vartype;...case
2b20 20 54 5f 56 61 72 3a 00 09 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 65 54 61 67 28 65 78 70 72 .T_Var:..{..switch.(nodeTag(expr
2b40 29 29 00 00 09 09 72 65 74 75 72 6e 20 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 69 66 20 28 21 65 ))....return.InvalidOid;..if.(!e
2b60 78 70 72 29 00 00 09 4f 69 64 09 09 09 74 79 70 65 3b 00 7b 00 65 78 70 72 54 79 70 65 28 63 6f xpr)...Oid...type;.{.exprType(co
2b80 6e 73 74 20 4e 6f 64 65 20 2a 65 78 70 72 29 00 4f 69 64 00 20 2a 2f 00 20 2a 09 20 20 72 65 74 nst.Node.*expr).Oid..*/..*...ret
2ba0 75 72 6e 73 20 74 68 65 20 4f 69 64 20 6f 66 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 urns.the.Oid.of.the.type.of.the.
2bc0 65 78 70 72 65 73 73 69 6f 6e 27 73 20 72 65 73 75 6c 74 2e 00 20 2a 09 65 78 70 72 54 79 70 65 expression's.result...*.exprType
2be0 20 2d 00 2f 2a 00 00 00 09 09 09 09 09 20 20 20 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 .-./*...........bool.(*walker).(
2c00 29 2c 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 3b 00 73 74 61 74 69 63 20 62 6f 6f 6c 20 70 ),.void.*context);.static.bool.p
2c20 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d 62 65 72 73 28 4c 69 73 74 20 2a 70 6c 61 6e lanstate_walk_members(List.*plan
2c40 73 2c 20 50 6c 61 6e 53 74 61 74 65 20 2a 2a 70 6c 61 6e 73 74 61 74 65 73 2c 00 09 09 09 09 09 s,.PlanState.**planstates,......
2c60 09 09 09 09 09 09 09 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 3b 00 73 74 61 74 69 63 20 62 6f .......void.*context);.static.bo
2c80 6f 6c 20 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 73 75 62 70 6c 61 6e 73 28 4c 69 73 74 20 ol.planstate_walk_subplans(List.
2ca0 2a 70 6c 61 6e 73 2c 20 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 29 2c 00 73 74 61 74 69 *plans,.bool.(*walker).(),.stati
2cc0 63 20 69 6e 74 09 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 69 6e 74 20 6c 6f 63 31 2c 20 69 6e 74 20 c.int.leftmostLoc(int.loc1,.int.
2ce0 6c 6f 63 32 29 3b 00 73 74 61 74 69 63 20 62 6f 6f 6c 20 65 78 70 72 65 73 73 69 6f 6e 5f 72 65 loc2);.static.bool.expression_re
2d00 74 75 72 6e 73 5f 73 65 74 5f 77 61 6c 6b 65 72 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 20 76 6f 69 turns_set_walker(Node.*node,.voi
2d20 64 20 2a 63 6f 6e 74 65 78 74 29 3b 00 00 00 23 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 73 2f 6c d.*context);...#include."utils/l
2d40 73 79 73 63 61 63 68 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 75 74 69 6c 73 2f 62 75 69 6c syscache.h".#include."utils/buil
2d60 74 69 6e 73 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6e 6f 64 65 73 2f 72 65 6c 61 74 69 6f 6e tins.h".#include."nodes/relation
2d80 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 6e 6f 64 65 73 2f 6e 6f 64 65 46 75 6e 63 73 2e 68 22 .h".#include."nodes/nodeFuncs.h"
2da0 00 23 69 6e 63 6c 75 64 65 20 22 6e 6f 64 65 73 2f 65 78 65 63 6e 6f 64 65 73 2e 68 22 00 23 69 .#include."nodes/execnodes.h".#i
2dc0 6e 63 6c 75 64 65 20 22 6e 6f 64 65 73 2f 6d 61 6b 65 66 75 6e 63 73 2e 68 22 00 23 69 6e 63 6c nclude."nodes/makefuncs.h".#incl
2de0 75 64 65 20 22 6d 69 73 63 61 64 6d 69 6e 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 63 61 74 61 ude."miscadmin.h".#include."cata
2e00 6c 6f 67 2f 70 67 5f 74 79 70 65 2e 68 22 00 23 69 6e 63 6c 75 64 65 20 22 63 61 74 61 6c 6f 67 log/pg_type.h".#include."catalog
2e20 2f 70 67 5f 63 6f 6c 6c 61 74 69 6f 6e 2e 68 22 00 00 23 69 6e 63 6c 75 64 65 20 22 70 6f 73 74 /pg_collation.h"..#include."post
2e40 67 72 65 73 2e 68 22 00 20 2a 2f 00 20 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d gres.h"..*/..*------------------
2e60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2e80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 20 2a 00 20 2a 09 20 20 -----------------------..*..*...
2ea0 73 72 63 2f 62 61 63 6b 65 6e 64 2f 6e 6f 64 65 73 2f 6e 6f 64 65 46 75 6e 63 73 2e 63 00 20 2a src/backend/nodes/nodeFuncs.c..*
2ec0 20 49 44 45 4e 54 49 46 49 43 41 54 49 4f 4e 00 20 2a 00 20 2a 00 20 2a 20 50 6f 72 74 69 6f 6e .IDENTIFICATION..*..*..*.Portion
2ee0 73 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 34 2c 20 52 65 67 65 6e 74 73 20 6f 66 s.Copyright.(c).1994,.Regents.of
2f00 20 74 68 65 20 55 6e 69 76 65 72 73 69 74 79 20 6f 66 20 43 61 6c 69 66 6f 72 6e 69 61 00 20 2a .the.University.of.California..*
2f20 20 50 6f 72 74 69 6f 6e 73 20 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 31 39 39 36 2d 32 30 31 .Portions.Copyright.(c).1996-201
2f40 36 2c 20 50 6f 73 74 67 72 65 53 51 4c 20 47 6c 6f 62 61 6c 20 44 65 76 65 6c 6f 70 6d 65 6e 74 6,.PostgreSQL.Global.Development
2f60 20 47 72 6f 75 70 00 20 2a 00 20 2a 09 09 56 61 72 69 6f 75 73 20 67 65 6e 65 72 61 6c 2d 70 75 .Group..*..*..Various.general-pu
2f80 72 70 6f 73 65 20 6d 61 6e 69 70 75 6c 61 74 69 6f 6e 73 20 6f 66 20 4e 6f 64 65 20 74 72 65 65 rpose.manipulations.of.Node.tree
2fa0 73 00 20 2a 20 6e 6f 64 65 46 75 6e 63 73 2e 63 00 20 2a 00 2f 2a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d s..*.nodeFuncs.c..*./*----------
2fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
2fe0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 00 -------------------------------.
3000 61 64 00 00 dc 01 00 00 14 04 00 00 00 10 00 00 87 00 00 00 00 00 00 00 fd 0f 00 00 ee 0f 00 00 ad..............................
3020 ec 0f 00 00 eb 0f 00 00 e8 0f 00 00 b5 0f 00 00 b2 0f 00 00 6a 0f 00 00 44 0f 00 00 40 0f 00 00 ....................j...D...@...
3040 3b 0f 00 00 0f 0f 00 00 f5 0e 00 00 df 0e 00 00 dd 0e 00 00 bb 0e 00 00 aa 0e 00 00 a9 0e 00 00 ;...............................
3060 97 0e 00 00 53 0e 00 00 44 0e 00 00 43 0e 00 00 33 0e 00 00 13 0e 00 00 10 0e 00 00 de 0d 00 00 ....S...D...C...3...............
3080 ce 0d 00 00 cb 0d 00 00 ca 0d 00 00 b9 0d 00 00 99 0d 00 00 96 0d 00 00 64 0d 00 00 54 0d 00 00 ........................d...T...
30a0 51 0d 00 00 50 0d 00 00 35 0d 00 00 1d 0d 00 00 1a 0d 00 00 04 0d 00 00 c7 0c 00 00 91 0c 00 00 Q...P...5.......................
30c0 73 0c 00 00 62 0c 00 00 58 0c 00 00 47 0c 00 00 09 0c 00 00 d6 0b 00 00 b8 0b 00 00 a7 0b 00 00 s...b...X...G...................
30e0 9d 0b 00 00 87 0b 00 00 45 0b 00 00 0f 0b 00 00 f1 0a 00 00 e0 0a 00 00 d6 0a 00 00 c2 0a 00 00 ........E.......................
3100 81 0a 00 00 4b 0a 00 00 2d 0a 00 00 1c 0a 00 00 12 0a 00 00 ff 09 00 00 bf 09 00 00 89 09 00 00 ....K...-.......................
3120 6b 09 00 00 5a 09 00 00 50 09 00 00 39 09 00 00 f5 08 00 00 e4 08 00 00 da 08 00 00 c5 08 00 00 k...Z...P...9...................
3140 8a 08 00 00 85 08 00 00 52 08 00 00 40 08 00 00 3b 08 00 00 31 08 00 00 26 08 00 00 1c 08 00 00 ........R...@...;...1...&.......
3160 19 08 00 00 18 08 00 00 07 08 00 00 c4 07 00 00 b5 07 00 00 b4 07 00 00 a5 07 00 00 a3 07 00 00 ................................
3180 a2 07 00 00 9f 07 00 00 56 07 00 00 52 07 00 00 46 07 00 00 21 07 00 00 08 07 00 00 f3 06 00 00 ........V...R...F...!...........
31a0 f1 06 00 00 e0 06 00 00 df 06 00 00 cb 06 00 00 c8 06 00 00 95 06 00 00 94 06 00 00 72 06 00 00 ............................r...
31c0 4b 06 00 00 3b 06 00 00 38 06 00 00 37 06 00 00 28 06 00 00 26 06 00 00 25 06 00 00 22 06 00 00 K...;...8...7...(...&...%..."...
31e0 dd 05 00 00 bd 05 00 00 ba 05 00 00 74 05 00 00 27 05 00 00 23 05 00 00 17 05 00 00 db 04 00 00 ............t...'...#...........
3200 b1 04 00 00 af 04 00 00 8b 04 00 00 81 04 00 00 80 04 00 00 62 04 00 00 5f 04 00 00 39 04 00 00 ....................b..._...9...
3220 29 04 00 00 26 04 00 00 25 04 00 00 16 04 00 00 14 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 )...&...%.......................
3240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
32e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
33e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7d ...............................}
3400 00 09 72 65 74 75 72 6e 20 66 61 6c 7d 00 09 72 65 74 75 72 7d 00 09 72 65 74 75 72 6e 20 66 61 ..return.fal}..retur}..return.fa
3420 6c 73 65 3b 00 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 69 66 20 28 77 lse;...}....return.true;...if.(w
3440 61 6c 6b 65 72 28 70 6c 61 6e 73 74 61 74 65 73 5b 6a 5d 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 alker(planstates[j],.context))..
3460 7b 00 09 66 6f 72 20 28 6a 20 3d 20 30 3b 20 6a 20 3c 20 6e 70 6c 61 6e 73 3b 20 6a 2b 2b 29 00 {..for.(j.=.0;.j.<.nplans;.j++).
3480 00 09 69 6e 74 09 09 09 6a 3b 00 09 69 6e 74 09 09 09 6e 70 6c 61 6e 73 20 3d 20 6c 69 73 74 5f ..int...j;..int...nplans.=.list_
34a0 6c 65 6e 67 74 68 28 70 6c 61 6e 73 29 3b 00 7b 00 09 09 09 09 09 20 20 20 62 6f 6f 6c 20 28 2a length(plans);.{.........bool.(*
34c0 77 61 6c 6b 65 72 29 20 28 29 2c 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 00 70 6c 61 6e 73 walker).(),.void.*context).plans
34e0 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d 62 65 72 73 28 4c 69 73 74 20 2a 70 6c 61 6e 73 2c 20 50 tate_walk_members(List.*plans,.P
3500 6c 61 6e 53 74 61 74 65 20 2a 2a 70 6c 61 6e 73 74 61 74 65 73 2c 00 73 74 61 74 69 63 20 62 6f lanState.**planstates,.static.bo
3520 6f 6c 00 20 2a 2f 00 20 2a 20 77 65 20 6e 65 65 64 20 74 68 65 20 6c 69 73 74 20 69 6e 20 6f 72 ol..*/..*.we.need.the.list.in.or
3540 64 65 72 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 der.to.determine.the.length.of.t
3560 68 65 20 50 6c 61 6e 53 74 61 74 65 20 61 72 72 61 79 2e 00 20 2a 20 4e 6f 74 65 3a 20 77 65 20 he.PlanState.array...*.Note:.we.
3580 64 6f 6e 27 74 20 61 63 74 75 61 6c 6c 79 20 6e 65 65 64 20 74 6f 20 65 78 61 6d 69 6e 65 20 74 don't.actually.need.to.examine.t
35a0 68 65 20 50 6c 61 6e 20 6c 69 73 74 20 6d 65 6d 62 65 72 73 2c 20 62 75 74 00 20 2a 00 20 2a 20 he.Plan.list.members,.but..*..*.
35c0 42 69 74 6d 61 70 41 6e 64 2c 20 6f 72 20 42 69 74 6d 61 70 4f 72 20 6e 6f 64 65 2e 00 20 2a 20 BitmapAnd,.or.BitmapOr.node...*.
35e0 57 61 6c 6b 20 74 68 65 20 63 6f 6e 73 74 69 74 75 65 6e 74 20 70 6c 61 6e 73 20 6f 66 20 61 20 Walk.the.constituent.plans.of.a.
3600 4d 6f 64 69 66 79 54 61 62 6c 65 2c 20 41 70 70 65 6e 64 2c 20 4d 65 72 67 65 41 70 70 65 6e 64 ModifyTable,.Append,.MergeAppend
3620 2c 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 09 7d 00 09 09 09 72 65 ,./*..}..return.false;...}....re
3640 74 75 72 6e 20 74 72 75 65 3b 00 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 70 73 2d 3e 70 6c 61 turn.true;...if.(walker(sps->pla
3660 6e 73 74 61 74 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 41 73 73 65 72 74 28 49 73 41 28 73 nstate,.context))...Assert(IsA(s
3680 70 73 2c 20 53 75 62 50 6c 61 6e 53 74 61 74 65 29 29 3b 00 00 09 09 53 75 62 50 6c 61 6e 53 74 ps,.SubPlanState));....SubPlanSt
36a0 61 74 65 20 2a 73 70 73 20 3d 20 28 53 75 62 50 6c 61 6e 53 74 61 74 65 20 2a 29 20 6c 66 69 72 ate.*sps.=.(SubPlanState.*).lfir
36c0 73 74 28 6c 63 29 3b 00 09 7b 00 09 66 6f 72 65 61 63 68 28 6c 63 2c 20 70 6c 61 6e 73 29 00 00 st(lc);..{..foreach(lc,.plans)..
36e0 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 6c 63 3b 00 7b 00 09 09 09 09 09 09 76 6f 69 64 20 2a 63 .ListCell...*lc;.{.......void.*c
3700 6f 6e 74 65 78 74 29 00 09 09 09 09 09 09 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 29 2c ontext).......bool.(*walker).(),
3720 00 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 73 75 62 70 6c 61 6e 73 28 4c 69 73 74 20 2a 70 .planstate_walk_subplans(List.*p
3740 6c 61 6e 73 2c 00 73 74 61 74 69 63 20 62 6f 6f 6c 00 20 2a 2f 00 20 2a 20 57 61 6c 6b 20 61 20 lans,.static.bool..*/..*.Walk.a.
3760 6c 69 73 74 20 6f 66 20 53 75 62 50 6c 61 6e 73 20 28 6f 72 20 69 6e 69 74 50 6c 61 6e 73 2c 20 list.of.SubPlans.(or.initPlans,.
3780 77 68 69 63 68 20 61 6c 73 6f 20 75 73 65 20 53 75 62 50 6c 61 6e 20 6e 6f 64 65 73 29 2e 00 2f which.also.use.SubPlan.nodes)../
37a0 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 09 09 72 65 74 75 72 6e 20 74 72 *..}..return.false;....return.tr
37c0 75 65 3b 00 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 73 75 62 70 6c 61 6e 73 ue;..if.(planstate_walk_subplans
37e0 28 70 6c 61 6e 73 74 61 74 65 2d 3e 73 75 62 50 6c 61 6e 2c 20 77 61 6c 6b 65 72 2c 20 63 6f 6e (planstate->subPlan,.walker,.con
3800 74 65 78 74 29 29 00 09 2f 2a 20 73 75 62 50 6c 61 6e 2d 73 20 2a 2f 00 00 09 7d 00 09 09 09 62 text))../*.subPlan-s.*/...}....b
3820 72 65 61 6b 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 reak;...default:....break;....}.
3840 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
3860 28 28 50 6c 61 6e 53 74 61 74 65 20 2a 29 20 6c 66 69 72 73 74 28 6c 63 29 2c 20 63 6f 6e 74 65 ((PlanState.*).lfirst(lc),.conte
3880 78 74 29 29 00 09 09 09 7b 00 09 09 09 66 6f 72 65 61 63 68 28 6c 63 2c 20 28 28 43 75 73 74 6f xt))....{....foreach(lc,.((Custo
38a0 6d 53 63 61 6e 53 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 63 75 73 74 6f 6d mScanState.*).planstate)->custom
38c0 5f 70 73 29 00 09 09 63 61 73 65 20 54 5f 43 75 73 74 6f 6d 53 63 61 6e 3a 00 09 09 09 62 72 65 _ps)...case.T_CustomScan:....bre
38e0 61 6b 3b 00 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 69 66 20 28 77 61 6c 6b ak;.....return.true;....if.(walk
3900 65 72 28 28 28 53 75 62 71 75 65 72 79 53 63 61 6e 53 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 er(((SubqueryScanState.*).planst
3920 61 74 65 29 2d 3e 73 75 62 70 6c 61 6e 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 63 61 73 65 20 ate)->subplan,.context))...case.
3940 54 5f 53 75 62 71 75 65 72 79 53 63 61 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 72 65 T_SubqueryScan:....break;.....re
3960 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 turn.true;.............walker,.c
3980 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 09 09 20 20 28 28 42 69 74 6d 61 70 4f 72 53 74 61 ontext))...........((BitmapOrSta
39a0 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 62 69 74 6d 61 70 70 6c 61 6e 73 2c 00 09 te.*).planstate)->bitmapplans,..
39c0 09 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d 62 65 72 73 28 28 28 42 ..if.(planstate_walk_members(((B
39e0 69 74 6d 61 70 4f 72 20 2a 29 20 70 6c 61 6e 29 2d 3e 62 69 74 6d 61 70 70 6c 61 6e 73 2c 00 09 itmapOr.*).plan)->bitmapplans,..
3a00 09 63 61 73 65 20 54 5f 42 69 74 6d 61 70 4f 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 .case.T_BitmapOr:....break;.....
3a20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c return.true;.............walker,
3a40 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 09 09 20 28 28 42 69 74 6d 61 70 41 6e 64 53 .context))..........((BitmapAndS
3a60 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 62 69 74 6d 61 70 70 6c 61 6e 73 2c tate.*).planstate)->bitmapplans,
3a80 00 09 09 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d 62 65 72 73 28 28 ....if.(planstate_walk_members((
3aa0 28 42 69 74 6d 61 70 41 6e 64 20 2a 29 20 70 6c 61 6e 29 2d 3e 62 69 74 6d 61 70 70 6c 61 6e 73 (BitmapAnd.*).plan)->bitmapplans
3ac0 2c 00 09 09 63 61 73 65 20 54 5f 42 69 74 6d 61 70 41 6e 64 3a 00 09 09 09 62 72 65 61 6b 3b 00 ,...case.T_BitmapAnd:....break;.
3ae0 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c ....return.true;.............wal
3b00 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 09 09 28 28 4d 65 72 67 65 41 70 ker,.context)).........((MergeAp
3b20 70 65 6e 64 53 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 6d 65 72 67 65 70 6c pendState.*).planstate)->mergepl
3b40 61 6e 73 2c 00 09 09 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d 62 65 ans,....if.(planstate_walk_membe
3b60 72 73 28 28 28 4d 65 72 67 65 41 70 70 65 6e 64 20 2a 29 20 70 6c 61 6e 29 2d 3e 6d 65 72 67 65 rs(((MergeAppend.*).plan)->merge
3b80 70 6c 61 6e 73 2c 00 09 09 63 61 73 65 20 54 5f 4d 65 72 67 65 41 70 70 65 6e 64 3a 00 09 09 09 plans,...case.T_MergeAppend:....
3ba0 62 72 65 61 6b 3b 00 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 break;.....return.true;.........
3bc0 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 09 09 09 28 ....walker,.context))..........(
3be0 28 41 70 70 65 6e 64 53 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 61 70 70 65 (AppendState.*).planstate)->appe
3c00 6e 64 70 6c 61 6e 73 2c 00 09 09 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d ndplans,....if.(planstate_walk_m
3c20 65 6d 62 65 72 73 28 28 28 41 70 70 65 6e 64 20 2a 29 20 70 6c 61 6e 29 2d 3e 61 70 70 65 6e 64 embers(((Append.*).plan)->append
3c40 70 6c 61 6e 73 2c 00 09 09 63 61 73 65 20 54 5f 41 70 70 65 6e 64 3a 00 09 09 09 62 72 65 61 6b plans,...case.T_Append:....break
3c60 3b 00 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 20 20 20 77 ;.....return.true;.............w
3c80 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 09 09 20 20 28 28 4d 6f 64 alker,.context))...........((Mod
3ca0 69 66 79 54 61 62 6c 65 53 74 61 74 65 20 2a 29 20 70 6c 61 6e 73 74 61 74 65 29 2d 3e 6d 74 5f ifyTableState.*).planstate)->mt_
3cc0 70 6c 61 6e 73 2c 00 09 09 09 69 66 20 28 70 6c 61 6e 73 74 61 74 65 5f 77 61 6c 6b 5f 6d 65 6d plans,....if.(planstate_walk_mem
3ce0 62 65 72 73 28 28 28 4d 6f 64 69 66 79 54 61 62 6c 65 20 2a 29 20 70 6c 61 6e 29 2d 3e 70 6c 61 bers(((ModifyTable.*).plan)->pla
3d00 6e 73 2c 00 09 09 63 61 73 65 20 54 5f 4d 6f 64 69 66 79 54 61 62 6c 65 3a 00 09 7b 00 09 73 77 ns,...case.T_ModifyTable:..{..sw
3d20 69 74 63 68 20 28 6e 6f 64 65 54 61 67 28 70 6c 61 6e 29 29 00 09 2f 2a 20 73 70 65 63 69 61 6c itch.(nodeTag(plan))../*.special
3d40 20 63 68 69 6c 64 20 70 6c 61 6e 73 20 2a 2f 00 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 74 72 .child.plans.*/...}....return.tr
3d60 75 65 3b 00 09 09 69 66 20 28 77 61 6c 6b 65 72 28 69 6e 6e 65 72 50 6c 61 6e 53 74 61 74 65 28 ue;...if.(walker(innerPlanState(
3d80 70 6c 61 6e 73 74 61 74 65 29 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 7b 00 09 69 66 20 28 69 6e planstate),.context))..{..if.(in
3da0 6e 65 72 50 6c 61 6e 53 74 61 74 65 28 70 6c 61 6e 73 74 61 74 65 29 29 00 09 2f 2a 20 72 69 67 nerPlanState(planstate))../*.rig
3dc0 68 74 74 72 65 65 20 2a 2f 00 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 httree.*/...}....return.true;...
3de0 69 66 20 28 77 61 6c 6b 65 72 28 6f 75 74 65 72 50 6c 61 6e 53 74 61 74 65 28 70 6c 61 6e 73 74 if.(walker(outerPlanState(planst
3e00 61 74 65 29 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 7b 00 09 69 66 20 28 6f 75 74 65 72 50 6c 61 ate),.context))..{..if.(outerPla
3e20 6e 53 74 61 74 65 28 70 6c 61 6e 73 74 61 74 65 29 29 00 09 2f 2a 20 6c 65 66 74 74 72 65 65 20 nState(planstate))../*.lefttree.
3e40 2a 2f 00 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 70 6c 61 6e 73 74 61 74 */....return.true;..if.(planstat
3e60 65 5f 77 61 6c 6b 5f 73 75 62 70 6c 61 6e 73 28 70 6c 61 6e 73 74 61 74 65 2d 3e 69 6e 69 74 50 e_walk_subplans(planstate->initP
3e80 6c 61 6e 2c 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 2f 2a 20 69 6e 69 74 50 lan,.walker,.context))../*.initP
3ea0 6c 61 6e 2d 73 20 2a 2f 00 00 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 6c 63 3b 00 09 50 6c 61 6e lan-s.*/...ListCell...*lc;..Plan
3ec0 09 20 20 20 2a 70 6c 61 6e 20 3d 20 70 6c 61 6e 73 74 61 74 65 2d 3e 70 6c 61 6e 3b 00 7b 00 09 ....*plan.=.planstate->plan;.{..
3ee0 09 09 09 09 20 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 00 09 09 09 09 09 20 20 62 6f 6f 6c ......void.*context)........bool
3f00 20 28 2a 77 61 6c 6b 65 72 29 20 28 29 2c 00 70 6c 61 6e 73 74 61 74 65 5f 74 72 65 65 5f 77 61 .(*walker).(),.planstate_tree_wa
3f20 6c 6b 65 72 28 50 6c 61 6e 53 74 61 74 65 20 2a 70 6c 61 6e 73 74 61 74 65 2c 00 62 6f 6f 6c 00 lker(PlanState.*planstate,.bool.
3f40 20 2a 2f 00 20 2a 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 61 6e 79 20 73 75 62 2d 6e 6f 64 65 .*/..*.recurse.into.any.sub-node
3f60 73 20 69 74 20 68 61 73 2e 00 20 2a 20 54 68 65 20 77 61 6c 6b 65 72 20 68 61 73 20 61 6c 72 65 s.it.has...*.The.walker.has.alre
3f80 61 64 79 20 76 69 73 69 74 65 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2c 20 61 6e ady.visited.the.current.node,.an
3fa0 64 20 73 6f 20 77 65 20 6e 65 65 64 20 6f 6e 6c 79 00 20 2a 00 20 2a 20 70 6c 61 6e 73 74 61 74 d.so.we.need.only..*..*.planstat
3fc0 65 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 2d 2d 2d 20 77 61 6c 6b 20 70 6c 61 6e 20 73 74 61 74 e_tree_walker.---.walk.plan.stat
3fe0 65 20 74 72 65 65 73 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 7d 00 e.trees./*..}..return.false;..}.
4000 61 64 00 00 19 00 00 00 55 02 00 00 00 10 00 00 88 00 00 00 00 00 00 00 fa 0f 00 00 f1 0f 00 00 ad......U.......................
4020 eb 0f 00 00 b1 0f 00 00 9c 0f 00 00 96 0f 00 00 91 0f 00 00 87 0f 00 00 75 0f 00 00 70 0f 00 00 ........................u...p...
4040 3b 0f 00 00 3a 0f 00 00 0a 0f 00 00 de 0e 00 00 d8 0e 00 00 99 0e 00 00 76 0e 00 00 46 0e 00 00 ;...:...................v...F...
4060 3f 0e 00 00 13 0e 00 00 f6 0d 00 00 e0 0d 00 00 b3 0d 00 00 74 0d 00 00 41 0d 00 00 3a 0d 00 00 ?...................t...A...:...
4080 34 0d 00 00 fc 0c 00 00 f6 0c 00 00 bb 0c 00 00 a4 0c 00 00 9e 0c 00 00 95 0c 00 00 8f 0c 00 00 4...............................
40a0 55 0c 00 00 40 0c 00 00 3a 0c 00 00 35 0c 00 00 2b 0c 00 00 0e 0c 00 00 09 0c 00 00 bf 0b 00 00 U...@...:...5...+...............
40c0 be 0b 00 00 8a 0b 00 00 50 0b 00 00 4b 0b 00 00 41 0b 00 00 2b 0b 00 00 f7 0a 00 00 ed 0a 00 00 ........P...K...A...+...........
40e0 d8 0a 00 00 a5 0a 00 00 9b 0a 00 00 85 0a 00 00 51 0a 00 00 47 0a 00 00 31 0a 00 00 fd 09 00 00 ................Q...G...1.......
4100 f3 09 00 00 d9 09 00 00 a1 09 00 00 97 09 00 00 7a 09 00 00 3f 09 00 00 35 09 00 00 1f 09 00 00 ................z...?...5.......
4120 df 08 00 00 d5 08 00 00 c2 08 00 00 93 08 00 00 89 08 00 00 72 08 00 00 41 08 00 00 37 08 00 00 ....................r...A...7...
4140 23 08 00 00 ef 07 00 00 e5 07 00 00 d3 07 00 00 a3 07 00 00 99 07 00 00 80 07 00 00 6d 07 00 00 #...........................m...
4160 63 07 00 00 4c 07 00 00 15 07 00 00 0b 07 00 00 f6 06 00 00 c3 06 00 00 b9 06 00 00 a7 06 00 00 c...L...........................
4180 73 06 00 00 5f 06 00 00 22 06 00 00 0e 06 00 00 06 06 00 00 f3 05 00 00 e9 05 00 00 d6 05 00 00 s..._...".......................
41a0 c3 05 00 00 b9 05 00 00 a3 05 00 00 90 05 00 00 86 05 00 00 6d 05 00 00 36 05 00 00 2c 05 00 00 ....................m...6...,...
41c0 0e 05 00 00 d6 04 00 00 cc 04 00 00 b5 04 00 00 84 04 00 00 7a 04 00 00 62 04 00 00 4f 04 00 00 ....................z...b...O...
41e0 45 04 00 00 2d 04 00 00 28 04 00 00 ed 03 00 00 ec 03 00 00 c5 03 00 00 c0 03 00 00 b6 03 00 00 E...-...(.......................
4200 9d 03 00 00 57 03 00 00 4d 03 00 00 42 03 00 00 ff 02 00 00 cf 02 00 00 c5 02 00 00 c2 02 00 00 ....W...M...B...................
4220 b4 02 00 00 b2 02 00 00 b1 02 00 00 ae 02 00 00 9e 02 00 00 55 02 00 00 54 02 00 00 00 00 00 00 ....................U...T.......
4240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 2a 09 20 20 72 65 74 75 72 6e ......................*...return
4260 73 20 74 68 65 20 74 79 70 65 2d 73 70 65 63 69 66 69 63 20 6d 6f 64 69 66 69 65 72 20 6f 66 20 s.the.type-specific.modifier.of.
4280 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 27 73 20 72 65 73 75 6c 74 20 74 79 70 65 2c 00 20 2a the.expression's.result.type,..*
42a0 09 65 78 70 72 54 79 70 6d 6f 64 20 2d 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 74 79 70 65 .exprTypmod.-./*..}..return.type
42c0 3b 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 49 6e 76 61 6c 69 64 ;..}....break;....type.=.Invalid
42e0 4f 69 64 3b 09 2f 2a 20 6b 65 65 70 20 63 6f 6d 70 69 6c 65 72 20 71 75 69 65 74 20 2a 2f 00 09 Oid;./*.keep.compiler.quiet.*/..
4300 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6e 6f 64 65 ..elog(ERROR,."unrecognized.node
4320 20 74 79 70 65 3a 20 25 64 22 2c 20 28 69 6e 74 29 20 6e 6f 64 65 54 61 67 28 65 78 70 72 29 29 .type:.%d",.(int).nodeTag(expr))
4340 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d ;...default:....break;....type.=
4360 20 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 50 6c 61 63 65 .exprType((Node.*).((const.Place
4380 48 6f 6c 64 65 72 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 70 68 65 78 70 72 29 3b 00 09 09 63 HolderVar.*).expr)->phexpr);...c
43a0 61 73 65 20 54 5f 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 ase.T_PlaceHolderVar:....break;.
43c0 09 09 09 7d 00 09 09 09 09 74 79 70 65 20 3d 20 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a ...}.....type.=.exprType((Node.*
43e0 29 20 6e 2d 3e 65 78 70 72 29 3b 00 00 09 09 09 09 63 6f 6e 73 74 20 49 6e 66 65 72 65 6e 63 65 ).n->expr);......const.Inference
4400 45 6c 65 6d 20 2a 6e 20 3d 20 28 63 6f 6e 73 74 20 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a Elem.*n.=.(const.InferenceElem.*
4420 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 49 6e 66 65 72 65 6e 63 65 45 ).expr;....{...case.T_InferenceE
4440 6c 65 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 lem:....break;....type.=.BOOLOID
4460 3b 00 09 09 63 61 73 65 20 54 5f 43 75 72 72 65 6e 74 4f 66 45 78 70 72 3a 00 09 09 09 62 72 65 ;...case.T_CurrentOfExpr:....bre
4480 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 53 65 74 54 6f 44 65 66 61 75 ak;....type.=.((const.SetToDefau
44a0 6c 74 20 2a 29 20 65 78 70 72 29 2d 3e 74 79 70 65 49 64 3b 00 09 09 63 61 73 65 20 54 5f 53 65 lt.*).expr)->typeId;...case.T_Se
44c0 74 54 6f 44 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 tToDefault:....break;....type.=.
44e0 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 20 2a 29 20 65 ((const.CoerceToDomainValue.*).e
4500 78 70 72 29 2d 3e 74 79 70 65 49 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 xpr)->typeId;...case.T_CoerceToD
4520 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 omainValue:....break;....type.=.
4540 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 65 78 70 72 29 2d ((const.CoerceToDomain.*).expr)-
4560 3e 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f >resulttype;...case.T_CoerceToDo
4580 6d 61 69 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 main:....break;....type.=.BOOLOI
45a0 44 3b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 65 61 6e 54 65 73 74 3a 00 09 09 09 62 72 65 61 D;...case.T_BooleanTest:....brea
45c0 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 09 09 63 61 73 65 20 54 5f 4e k;....type.=.BOOLOID;...case.T_N
45e0 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 74 79 70 65 20 3d 20 58 4d ullTest:....break;.....type.=.XM
4600 4c 4f 49 44 3b 00 09 09 09 65 6c 73 65 00 09 09 09 09 74 79 70 65 20 3d 20 54 45 58 54 4f 49 44 LOID;....else.....type.=.TEXTOID
4620 3b 00 09 09 09 65 6c 73 65 20 69 66 20 28 28 28 63 6f 6e 73 74 20 58 6d 6c 45 78 70 72 20 2a 29 ;....else.if.(((const.XmlExpr.*)
4640 20 65 78 70 72 29 2d 3e 6f 70 20 3d 3d 20 49 53 5f 58 4d 4c 53 45 52 49 41 4c 49 5a 45 29 00 09 .expr)->op.==.IS_XMLSERIALIZE)..
4660 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 09 09 09 69 66 20 28 28 28 63 6f 6e 73 ...type.=.BOOLOID;....if.(((cons
4680 74 20 58 6d 6c 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 20 3d 3d 20 49 53 5f 44 4f 43 t.XmlExpr.*).expr)->op.==.IS_DOC
46a0 55 4d 45 4e 54 29 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 UMENT)...case.T_XmlExpr:....brea
46c0 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 4d 69 6e 4d 61 78 45 78 70 72 20 k;....type.=.((const.MinMaxExpr.
46e0 2a 29 20 65 78 70 72 29 2d 3e 6d 69 6e 6d 61 78 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 4d *).expr)->minmaxtype;...case.T_M
4700 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 inMaxExpr:....break;....type.=.(
4720 28 63 6f 6e 73 74 20 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f (const.CoalesceExpr.*).expr)->co
4740 61 6c 65 73 63 65 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 70 alescetype;...case.T_CoalesceExp
4760 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 r:....break;....type.=.BOOLOID;.
4780 09 09 63 61 73 65 20 54 5f 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 ..case.T_RowCompareExpr:....brea
47a0 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 52 6f 77 45 78 70 72 20 2a 29 20 k;....type.=.((const.RowExpr.*).
47c0 65 78 70 72 29 2d 3e 72 6f 77 5f 74 79 70 65 69 64 3b 00 09 09 63 61 73 65 20 54 5f 52 6f 77 45 expr)->row_typeid;...case.T_RowE
47e0 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 xpr:....break;....type.=.((const
4800 20 41 72 72 61 79 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 72 61 79 5f 74 79 70 65 69 .ArrayExpr.*).expr)->array_typei
4820 64 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b d;...case.T_ArrayExpr:....break;
4840 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 43 61 73 65 54 65 73 74 45 78 70 72 20 ....type.=.((const.CaseTestExpr.
4860 2a 29 20 65 78 70 72 29 2d 3e 74 79 70 65 49 64 3b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 54 *).expr)->typeId;...case.T_CaseT
4880 65 73 74 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 estExpr:....break;....type.=.((c
48a0 6f 6e 73 74 20 43 61 73 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 61 73 65 74 79 70 65 onst.CaseExpr.*).expr)->casetype
48c0 3b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 ;...case.T_CaseExpr:....break;..
48e0 09 09 74 79 70 65 20 3d 20 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e ..type.=.exprType((Node.*).((con
4900 73 74 20 43 6f 6c 6c 61 74 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 st.CollateExpr.*).expr)->arg);..
4920 09 63 61 73 65 20 54 5f 43 6f 6c 6c 61 74 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 .case.T_CollateExpr:....break;..
4940 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 ..type.=.((const.ConvertRowtypeE
4960 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 xpr.*).expr)->resulttype;...case
4980 20 54 5f 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b .T_ConvertRowtypeExpr:....break;
49a0 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 ....type.=.((const.ArrayCoerceEx
49c0 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 pr.*).expr)->resulttype;...case.
49e0 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 T_ArrayCoerceExpr:....break;....
4a00 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 29 20 65 78 type.=.((const.CoerceViaIO.*).ex
4a20 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 pr)->resulttype;...case.T_Coerce
4a40 56 69 61 49 4f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e ViaIO:....break;....type.=.((con
4a60 73 74 20 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 st.RelabelType.*).expr)->resultt
4a80 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c 54 79 70 65 3a 00 09 09 09 62 72 ype;...case.T_RelabelType:....br
4aa0 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d 20 28 28 63 6f 6e 73 74 20 46 69 65 6c 64 53 74 6f 72 eak;....type.=.((const.FieldStor
4ac0 65 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 e.*).expr)->resulttype;...case.T
4ae0 5f 46 69 65 6c 64 53 74 6f 72 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 74 79 70 65 20 3d _FieldStore:....break;....type.=
4b00 20 28 28 63 6f 6e 73 74 20 46 69 65 6c 64 53 65 6c 65 63 74 20 2a 29 20 65 78 70 72 29 2d 3e 72 .((const.FieldSelect.*).expr)->r
4b20 65 73 75 6c 74 74 79 70 65 3b 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a esulttype;...case.T_FieldSelect:
4b40 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 74 79 70 65 20 3d 20 65 78 70 72 54 ....break;....}.....type.=.exprT
4b60 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 61 73 70 6c 61 6e 2d 3e 73 75 ype((Node.*).linitial(asplan->su
4b80 62 70 6c 61 6e 73 29 29 3b 00 09 09 09 09 2f 2a 20 73 75 62 70 6c 61 6e 73 20 73 68 6f 75 6c 64 bplans));...../*.subplans.should
4ba0 20 61 6c 6c 20 72 65 74 75 72 6e 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 20 2a 2f 00 00 09 .all.return.the.same.thing.*/...
4bc0 09 09 09 63 6f 6e 73 74 20 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 61 73 70 ...const.AlternativeSubPlan.*asp
4be0 6c 61 6e 20 3d 20 28 63 6f 6e 73 74 20 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 lan.=.(const.AlternativeSubPlan.
4c00 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 6c 74 65 72 6e 61 74 69 *).expr;....{...case.T_Alternati
4c20 76 65 53 75 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 7d 00 veSubPlan:....break;....}.....}.
4c40 09 09 09 09 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 09 09 09 09 09 2f 2a 20 66 6f 72 .....type.=.BOOLOID;....../*.for
4c60 20 61 6c 6c 20 6f 74 68 65 72 20 73 75 62 70 6c 61 6e 20 74 79 70 65 73 2c 20 72 65 73 75 6c 74 .all.other.subplan.types,.result
4c80 20 69 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 65 6c 73 65 00 09 09 .is.boolean.*/.....{.....else...
4ca0 09 09 7d 00 09 09 09 09 09 74 79 70 65 20 3d 20 52 45 43 4f 52 44 4f 49 44 3b 00 09 09 09 09 09 ..}......type.=.RECORDOID;......
4cc0 2f 2a 20 4d 55 4c 54 49 45 58 50 52 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6e 73 69 64 65 72 65 /*.MULTIEXPR.is.always.considere
4ce0 64 20 74 6f 20 72 65 74 75 72 6e 20 52 45 43 4f 52 44 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 d.to.return.RECORD.*/.....{.....
4d00 65 6c 73 65 20 69 66 20 28 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d else.if.(subplan->subLinkType.==
4d20 20 4d 55 4c 54 49 45 58 50 52 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 7d 00 09 09 09 09 09 7d .MULTIEXPR_SUBLINK).....}......}
4d40 00 09 09 09 09 09 09 09 09 09 66 6f 72 6d 61 74 5f 74 79 70 65 5f 62 65 28 73 75 62 70 6c 61 6e ..........format_type_be(subplan
4d60 2d 3e 66 69 72 73 74 43 6f 6c 54 79 70 65 29 29 29 29 3b 00 09 09 09 09 09 09 09 09 09 20 65 72 ->firstColType))));...........er
4d80 72 6d 73 67 28 22 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 72 72 61 79 20 74 79 70 65 20 rmsg("could.not.find.array.type.
4da0 66 6f 72 20 64 61 74 61 20 74 79 70 65 20 25 73 22 2c 00 09 09 09 09 09 09 09 09 09 28 65 72 72 for.data.type.%s",..........(err
4dc0 63 6f 64 65 28 45 52 52 43 4f 44 45 5f 55 4e 44 45 46 49 4e 45 44 5f 4f 42 4a 45 43 54 29 2c 00 code(ERRCODE_UNDEFINED_OBJECT),.
4de0 09 09 09 09 09 09 09 65 72 65 70 6f 72 74 28 45 52 52 4f 52 2c 00 09 09 09 09 09 09 69 66 20 28 .......ereport(ERROR,.......if.(
4e00 21 4f 69 64 49 73 56 61 6c 69 64 28 74 79 70 65 29 29 00 09 09 09 09 09 09 74 79 70 65 20 3d 20 !OidIsValid(type)).......type.=.
4e20 67 65 74 5f 70 72 6f 6d 6f 74 65 64 5f 61 72 72 61 79 5f 74 79 70 65 28 74 79 70 65 29 3b 00 09 get_promoted_array_type(type);..
4e40 09 09 09 09 7b 00 09 09 09 09 09 69 66 20 28 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 ....{......if.(subplan->subLinkT
4e60 79 70 65 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 09 74 79 70 65 20 ype.==.ARRAY_SUBLINK)......type.
4e80 3d 20 73 75 62 70 6c 61 6e 2d 3e 66 69 72 73 74 43 6f 6c 54 79 70 65 3b 00 09 09 09 09 09 2f 2a =.subplan->firstColType;....../*
4ea0 20 67 65 74 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 73 75 62 73 65 6c 65 63 74 27 73 .get.the.type.of.the.subselect's
4ec0 20 66 69 72 73 74 20 74 61 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 .first.target.column.*/.....{...
4ee0 09 09 09 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 59 ...subplan->subLinkType.==.ARRAY
4f00 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 69 66 20 28 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 _SUBLINK).....if.(subplan->subLi
4f20 6e 6b 54 79 70 65 20 3d 3d 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 09 09 63 nkType.==.EXPR_SUBLINK.||......c
4f40 6f 6e 73 74 20 53 75 62 50 6c 61 6e 20 2a 73 75 62 70 6c 61 6e 20 3d 20 28 63 6f 6e 73 74 20 53 onst.SubPlan.*subplan.=.(const.S
4f60 75 62 50 6c 61 6e 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 ubPlan.*).expr;....{...case.T_Su
4f80 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 7d 00 09 09 09 09 bPlan:....break;....}.....}.....
4fa0 09 74 79 70 65 20 3d 20 42 4f 4f 4c 4f 49 44 3b 00 09 09 09 09 09 2f 2a 20 66 6f 72 20 61 6c 6c .type.=.BOOLOID;....../*.for.all
4fc0 20 6f 74 68 65 72 20 73 75 62 6c 69 6e 6b 20 74 79 70 65 73 2c 20 72 65 73 75 6c 74 20 69 73 20 .other.sublink.types,.result.is.
4fe0 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 7d 00 boolean.*/.....{.....else.....}.
5000 61 64 00 00 15 00 00 00 25 02 00 00 00 10 00 00 7d 00 00 00 00 00 00 00 b7 0f 00 00 b3 0f 00 00 ad......%.......}...............
5020 ad 0f 00 00 90 0f 00 00 8e 0f 00 00 82 0f 00 00 75 0f 00 00 74 0f 00 00 5c 0f 00 00 59 0f 00 00 ................u...t...\...Y...
5040 4b 0f 00 00 20 0f 00 00 10 0f 00 00 e1 0e 00 00 d1 0e 00 00 a2 0e 00 00 8f 0e 00 00 5e 0e 00 00 K...........................^...
5060 2e 0e 00 00 1b 0e 00 00 16 0e 00 00 fc 0d 00 00 fb 0d 00 00 c5 0d 00 00 91 0d 00 00 76 0d 00 00 ............................v...
5080 71 0d 00 00 67 0d 00 00 50 0d 00 00 0d 0d 00 00 f8 0c 00 00 f3 0c 00 00 ec 0c 00 00 ab 0c 00 00 q...g...P.......................
50a0 82 0c 00 00 7a 0c 00 00 41 0c 00 00 40 0c 00 00 09 0c 00 00 04 0c 00 00 fa 0b 00 00 e8 0b 00 00 ....z...A...@...................
50c0 e3 0b 00 00 ae 0b 00 00 ad 0b 00 00 7d 0b 00 00 51 0b 00 00 4b 0b 00 00 0a 0b 00 00 d5 0a 00 00 ............}...Q...K...........
50e0 bd 0a 00 00 bc 0a 00 00 95 0a 00 00 55 0a 00 00 1c 0a 00 00 f7 09 00 00 da 09 00 00 ad 09 00 00 ............U...................
5100 76 09 00 00 70 09 00 00 31 09 00 00 2c 09 00 00 22 09 00 00 10 09 00 00 0b 09 00 00 d6 08 00 00 v...p...1...,..."...............
5120 d5 08 00 00 a5 08 00 00 79 08 00 00 73 08 00 00 32 08 00 00 fb 07 00 00 d6 07 00 00 d0 07 00 00 ........y...s...2...............
5140 91 07 00 00 8c 07 00 00 82 07 00 00 65 07 00 00 60 07 00 00 16 07 00 00 15 07 00 00 e1 06 00 00 ............e...`...............
5160 a5 06 00 00 a0 06 00 00 96 06 00 00 80 06 00 00 4a 06 00 00 34 06 00 00 fe 05 00 00 e4 05 00 00 ................J...4...........
5180 aa 05 00 00 94 05 00 00 52 05 00 00 3f 05 00 00 3a 05 00 00 33 05 00 00 f2 04 00 00 d7 04 00 00 ........R...?...:...3...........
51a0 cf 04 00 00 9a 04 00 00 74 04 00 00 61 04 00 00 4c 04 00 00 4b 04 00 00 30 04 00 00 20 04 00 00 ........t...a...L...K...0.......
51c0 e7 03 00 00 d7 03 00 00 a3 03 00 00 8f 03 00 00 5f 03 00 00 41 03 00 00 3b 03 00 00 0c 03 00 00 ................_...A...;.......
51e0 0b 03 00 00 ec 02 00 00 b9 02 00 00 a8 02 00 00 75 02 00 00 64 02 00 00 5e 02 00 00 4b 02 00 00 ................u...d...^...K...
5200 46 02 00 00 3c 02 00 00 25 02 00 00 24 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F...<...%...$...................
5220 00 00 00 00 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 54 65 73 74 45 78 70 72 3a 00 09 09 09 62 .......case.T_CaseTestExpr:....b
5240 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 74 79 70 6d 6f 64 3b 00 09 09 reak;....}.....return.typmod;...
5260 09 09 7d 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 20 28 65 78 ..}.......return.-1;......if.(ex
5280 70 72 54 79 70 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 77 2d 3e 72 65 73 75 6c 74 29 20 21 3d 20 prTypmod((Node.*).w->result).!=.
52a0 74 79 70 6d 6f 64 29 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 typmod).......return.-1;......if
52c0 20 28 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 77 2d 3e 72 65 73 75 6c 74 29 20 21 .(exprType((Node.*).w->result).!
52e0 3d 20 63 61 73 65 74 79 70 65 29 00 09 09 09 09 09 41 73 73 65 72 74 28 49 73 41 28 77 2c 20 43 =.casetype)......Assert(IsA(w,.C
5300 61 73 65 57 68 65 6e 29 29 3b 00 00 09 09 09 09 09 43 61 73 65 57 68 65 6e 20 20 20 2a 77 20 3d aseWhen));.......CaseWhen...*w.=
5320 20 28 43 61 73 65 57 68 65 6e 20 2a 29 20 6c 66 69 72 73 74 28 61 72 67 29 3b 00 09 09 09 09 7b .(CaseWhen.*).lfirst(arg);.....{
5340 00 09 09 09 09 66 6f 72 65 61 63 68 28 61 72 67 2c 20 63 65 78 70 72 2d 3e 61 72 67 73 29 00 09 .....foreach(arg,.cexpr->args)..
5360 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 09 2f 2a 20 6e 6f 20 70 6f 69 6e 74 20 69 6e 20 74 72 ....return.-1;./*.no.point.in.tr
5380 79 69 6e 67 20 68 61 72 64 65 72 20 2a 2f 00 09 09 09 09 69 66 20 28 74 79 70 6d 6f 64 20 3c 20 ying.harder.*/.....if.(typmod.<.
53a0 30 29 00 09 09 09 09 74 79 70 6d 6f 64 20 3d 20 65 78 70 72 54 79 70 6d 6f 64 28 28 4e 6f 64 65 0).....typmod.=.exprTypmod((Node
53c0 20 2a 29 20 63 65 78 70 72 2d 3e 64 65 66 72 65 73 75 6c 74 29 3b 00 09 09 09 09 09 72 65 74 75 .*).cexpr->defresult);......retu
53e0 72 6e 20 2d 31 3b 00 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 rn.-1;.....if.(exprType((Node.*)
5400 20 63 65 78 70 72 2d 3e 64 65 66 72 65 73 75 6c 74 29 20 21 3d 20 63 61 73 65 74 79 70 65 29 00 .cexpr->defresult).!=.casetype).
5420 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 69 66 20 28 21 63 65 78 70 72 2d 3e .....return.-1;.....if.(!cexpr->
5440 64 65 66 72 65 73 75 6c 74 29 00 00 09 09 09 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 61 72 67 3b defresult)......ListCell...*arg;
5460 00 09 09 09 09 69 6e 74 33 32 09 09 74 79 70 6d 6f 64 3b 00 09 09 09 09 4f 69 64 09 09 09 63 61 .....int32..typmod;.....Oid...ca
5480 73 65 74 79 70 65 20 3d 20 63 65 78 70 72 2d 3e 63 61 73 65 74 79 70 65 3b 00 09 09 09 09 63 6f setype.=.cexpr->casetype;.....co
54a0 6e 73 74 20 43 61 73 65 45 78 70 72 20 2a 63 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 43 61 73 nst.CaseExpr.*cexpr.=.(const.Cas
54c0 65 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 74 79 eExpr.*).expr;......*/......*.ty
54e0 70 6d 6f 64 2c 20 65 6c 73 65 20 75 73 65 20 2d 31 00 09 09 09 09 20 2a 20 49 66 20 61 6c 6c 20 pmod,.else.use.-1......*.If.all.
5500 74 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 61 67 72 65 65 20 6f 6e 20 74 79 70 65 2f 74 the.alternatives.agree.on.type/t
5520 79 70 6d 6f 64 2c 20 72 65 74 75 72 6e 20 74 68 61 74 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 ypmod,.return.that...../*....{..
5540 09 63 61 73 65 20 54 5f 43 61 73 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 .case.T_CaseExpr:....return.expr
5560 54 79 70 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 43 6f 6c 6c 61 74 65 45 Typmod((Node.*).((const.CollateE
5580 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c xpr.*).expr)->arg);...case.T_Col
55a0 6c 61 74 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 41 72 72 61 lateExpr:....return.((const.Arra
55c0 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 6d yCoerceExpr.*).expr)->resulttypm
55e0 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 09 09 od;...case.T_ArrayCoerceExpr:...
5600 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 65 .return.((const.RelabelType.*).e
5620 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 6d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 52 65 6c xpr)->resulttypmod;...case.T_Rel
5640 61 62 65 6c 54 79 70 65 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 46 69 65 6c abelType:....return.((const.Fiel
5660 64 53 65 6c 65 63 74 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 79 70 6d 6f 64 3b 00 dSelect.*).expr)->resulttypmod;.
5680 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 ..case.T_FieldSelect:....break;.
56a0 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 54 79 70 6d 6f 64 28 28 4e 6f 64 65 ...}.....return.exprTypmod((Node
56c0 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 61 73 70 6c 61 6e 2d 3e 73 75 62 70 6c 61 6e 73 29 29 3b .*).linitial(asplan->subplans));
56e0 00 09 09 09 09 2f 2a 20 73 75 62 70 6c 61 6e 73 20 73 68 6f 75 6c 64 20 61 6c 6c 20 72 65 74 75 ...../*.subplans.should.all.retu
5700 72 6e 20 74 68 65 20 73 61 6d 65 20 74 68 69 6e 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 rn.the.same.thing.*/......const.
5720 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 61 73 70 6c 61 6e 20 3d 20 28 63 6f AlternativeSubPlan.*asplan.=.(co
5740 6e 73 74 20 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 29 20 65 78 70 72 3b 00 nst.AlternativeSubPlan.*).expr;.
5760 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e ...{...case.T_AlternativeSubPlan
5780 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 6f 74 68 65 72 77 69 73 :....break;....}...../*.otherwis
57a0 65 2c 20 72 65 73 75 6c 74 20 69 73 20 52 45 43 4f 52 44 20 6f 72 20 42 4f 4f 4c 45 41 4e 2c 20 e,.result.is.RECORD.or.BOOLEAN,.
57c0 74 79 70 6d 6f 64 20 69 73 20 2d 31 20 2a 2f 00 09 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 typmod.is.-1.*/.....}......retur
57e0 6e 20 73 75 62 70 6c 61 6e 2d 3e 66 69 72 73 74 43 6f 6c 54 79 70 6d 6f 64 3b 00 09 09 09 09 09 n.subplan->firstColTypmod;......
5800 2f 2a 20 6e 6f 74 65 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 63 61 72 65 20 69 66 /*.note.we.don't.need.to.care.if
5820 20 69 74 27 73 20 61 6e 20 61 72 72 61 79 20 2a 2f 00 09 09 09 09 09 2f 2a 20 67 65 74 20 74 68 .it's.an.array.*/....../*.get.th
5840 65 20 74 79 70 6d 6f 64 20 6f 66 20 74 68 65 20 73 75 62 73 65 6c 65 63 74 27 73 20 66 69 72 73 e.typmod.of.the.subselect's.firs
5860 74 20 74 61 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 09 73 75 t.target.column.*/.....{......su
5880 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c bplan->subLinkType.==.ARRAY_SUBL
58a0 49 4e 4b 29 00 09 09 09 09 69 66 20 28 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 INK).....if.(subplan->subLinkTyp
58c0 65 20 3d 3d 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 09 09 63 6f 6e 73 74 20 e.==.EXPR_SUBLINK.||......const.
58e0 53 75 62 50 6c 61 6e 20 2a 73 75 62 70 6c 61 6e 20 3d 20 28 63 6f 6e 73 74 20 53 75 62 50 6c 61 SubPlan.*subplan.=.(const.SubPla
5900 6e 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 62 50 6c 61 6e n.*).expr;....{...case.T_SubPlan
5920 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 6f 74 68 65 72 77 69 73 :....break;....}...../*.otherwis
5940 65 2c 20 72 65 73 75 6c 74 20 69 73 20 52 45 43 4f 52 44 20 6f 72 20 42 4f 4f 4c 45 41 4e 2c 20 e,.result.is.RECORD.or.BOOLEAN,.
5960 74 79 70 6d 6f 64 20 69 73 20 2d 31 20 2a 2f 00 09 09 09 09 7d 00 09 09 09 09 09 2f 2a 20 6e 6f typmod.is.-1.*/.....}....../*.no
5980 74 65 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 20 63 61 72 65 20 69 66 20 69 74 27 73 te.we.don't.need.to.care.if.it's
59a0 20 61 6e 20 61 72 72 61 79 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 54 79 70 .an.array.*/......return.exprTyp
59c0 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 74 65 6e 74 2d 3e 65 78 70 72 29 3b 00 09 09 09 09 09 41 mod((Node.*).tent->expr);......A
59e0 73 73 65 72 74 28 21 74 65 6e 74 2d 3e 72 65 73 6a 75 6e 6b 29 3b 00 09 09 09 09 09 41 73 73 65 ssert(!tent->resjunk);......Asse
5a00 72 74 28 49 73 41 28 74 65 6e 74 2c 20 54 61 72 67 65 74 45 6e 74 72 79 29 29 3b 00 09 09 09 09 rt(IsA(tent,.TargetEntry));.....
5a20 09 74 65 6e 74 20 3d 20 28 54 61 72 67 65 74 45 6e 74 72 79 20 2a 29 20 6c 69 6e 69 74 69 61 6c .tent.=.(TargetEntry.*).linitial
5a40 28 71 74 72 65 65 2d 3e 74 61 72 67 65 74 4c 69 73 74 29 3b 00 09 09 09 09 09 09 65 6c 6f 67 28 (qtree->targetList);.......elog(
5a60 45 52 52 4f 52 2c 20 22 63 61 6e 6e 6f 74 20 67 65 74 20 74 79 70 65 20 66 6f 72 20 75 6e 74 72 ERROR,."cannot.get.type.for.untr
5a80 61 6e 73 66 6f 72 6d 65 64 20 73 75 62 6c 69 6e 6b 22 29 3b 00 09 09 09 09 09 69 66 20 28 21 71 ansformed.sublink");......if.(!q
5aa0 74 72 65 65 20 7c 7c 20 21 49 73 41 28 71 74 72 65 65 2c 20 51 75 65 72 79 29 29 00 00 09 09 09 tree.||.!IsA(qtree,.Query)).....
5ac0 09 09 54 61 72 67 65 74 45 6e 74 72 79 20 2a 74 65 6e 74 3b 00 09 09 09 09 09 51 75 65 72 79 09 ..TargetEntry.*tent;......Query.
5ae0 20 20 20 2a 71 74 72 65 65 20 3d 20 28 51 75 65 72 79 20 2a 29 20 73 75 62 6c 69 6e 6b 2d 3e 73 ...*qtree.=.(Query.*).sublink->s
5b00 75 62 73 65 6c 65 63 74 3b 00 09 09 09 09 09 2f 2a 20 67 65 74 20 74 68 65 20 74 79 70 6d 6f 64 ubselect;....../*.get.the.typmod
5b20 20 6f 66 20 74 68 65 20 73 75 62 73 65 6c 65 63 74 27 73 20 66 69 72 73 74 20 74 61 72 67 65 74 .of.the.subselect's.first.target
5b40 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 09 73 75 62 6c 69 6e 6b 2d 3e 73 .column.*/.....{......sublink->s
5b60 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 ubLinkType.==.ARRAY_SUBLINK)....
5b80 09 69 66 20 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 45 58 50 .if.(sublink->subLinkType.==.EXP
5ba0 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 09 09 63 6f 6e 73 74 20 53 75 62 4c 69 6e 6b 20 R_SUBLINK.||......const.SubLink.
5bc0 2a 73 75 62 6c 69 6e 6b 20 3d 20 28 63 6f 6e 73 74 20 53 75 62 4c 69 6e 6b 20 2a 29 20 65 78 70 *sublink.=.(const.SubLink.*).exp
5be0 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 r;....{...case.T_SubLink:....bre
5c00 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 54 79 70 6d 6f 64 28 28 ak;....}.....return.exprTypmod((
5c20 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 6e 65 78 70 72 2d 3e 61 72 67 73 29 29 3b 00 Node.*).linitial(nexpr->args));.
5c40 00 09 09 09 09 63 6f 6e 73 74 20 4e 75 6c 6c 49 66 45 78 70 72 20 2a 6e 65 78 70 72 20 3d 20 28 .....const.NullIfExpr.*nexpr.=.(
5c60 63 6f 6e 73 74 20 4e 75 6c 6c 49 66 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 09 20 2a const.NullIfExpr.*).expr;......*
5c80 2f 00 09 09 09 09 20 2a 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 27 73 20 74 79 70 6d 6f 64 /......*.first.argument's.typmod
5ca0 20 69 66 20 6b 6e 6f 77 6e 2e 00 09 09 09 09 20 2a 20 52 65 73 75 6c 74 20 69 73 20 65 69 74 68 .if.known.......*.Result.is.eith
5cc0 65 72 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 20 6f 72 20 4e 55 4c 4c 2c 20 73 6f 20 77 65 er.first.argument.or.NULL,.so.we
5ce0 20 63 61 6e 20 72 65 70 6f 72 74 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 .can.report...../*....{...case.T
5d00 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 54 79 70 6d 6f _NullIfExpr:....return.exprTypmo
5d20 64 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 4e 61 6d 65 64 41 72 67 45 78 70 72 20 d((Node.*).((const.NamedArgExpr.
5d40 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 63 61 73 65 20 54 5f 4e 61 6d 65 64 41 72 *).expr)->arg);...case.T_NamedAr
5d60 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 gExpr:....break;....}......retur
5d80 6e 20 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 3b 00 09 09 09 09 69 66 20 28 65 78 70 72 49 73 4c n.coercedTypmod;.....if.(exprIsL
5da0 65 6e 67 74 68 43 6f 65 72 63 69 6f 6e 28 65 78 70 72 2c 20 26 63 6f 65 72 63 65 64 54 79 70 6d engthCoercion(expr,.&coercedTypm
5dc0 6f 64 29 29 00 09 09 09 09 2f 2a 20 42 65 20 73 6d 61 72 74 20 61 62 6f 75 74 20 6c 65 6e 67 74 od))...../*.Be.smart.about.lengt
5de0 68 2d 63 6f 65 72 63 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 2e 2e 2e 20 2a 2f 00 00 09 09 09 09 h-coercion.functions....*/......
5e00 69 6e 74 33 32 09 09 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 3b 00 09 09 09 7b 00 09 09 63 61 73 int32..coercedTypmod;....{...cas
5e20 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 e.T_FuncExpr:....return.((const.
5e40 41 72 72 61 79 52 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 66 74 79 70 6d 6f 64 3b 00 09 09 ArrayRef.*).expr)->reftypmod;...
5e60 09 2f 2a 20 74 79 70 6d 6f 64 20 69 73 20 74 68 65 20 73 61 6d 65 20 66 6f 72 20 61 72 72 61 79 ./*.typmod.is.the.same.for.array
5e80 20 6f 72 20 65 6c 65 6d 65 6e 74 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 52 65 66 .or.element.*/...case.T_ArrayRef
5ea0 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 50 61 72 61 6d 20 2a 29 20 65 78 70 :....return.((const.Param.*).exp
5ec0 72 29 2d 3e 70 61 72 61 6d 74 79 70 6d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 50 61 72 61 6d 3a r)->paramtypmod;...case.T_Param:
5ee0 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 43 6f 6e 73 74 20 2a 29 20 65 78 70 72 ....return.((const.Const.*).expr
5f00 29 2d 3e 63 6f 6e 73 74 74 79 70 6d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 )->consttypmod;...case.T_Const:.
5f20 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e ...return.((const.Var.*).expr)->
5f40 76 61 72 74 79 70 6d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 56 61 72 3a 00 09 7b 00 09 73 77 69 vartypmod;...case.T_Var:..{..swi
5f60 74 63 68 20 28 6e 6f 64 65 54 61 67 28 65 78 70 72 29 29 00 00 09 09 72 65 74 75 72 6e 20 2d 31 tch.(nodeTag(expr))....return.-1
5f80 3b 00 09 69 66 20 28 21 65 78 70 72 29 00 7b 00 65 78 70 72 54 79 70 6d 6f 64 28 63 6f 6e 73 74 ;..if.(!expr).{.exprTypmod(const
5fa0 20 4e 6f 64 65 20 2a 65 78 70 72 29 00 69 6e 74 33 32 00 20 2a 2f 00 20 2a 09 20 20 69 66 20 69 .Node.*expr).int32..*/..*...if.i
5fc0 74 20 63 61 6e 20 62 65 20 64 65 74 65 72 6d 69 6e 65 64 2e 20 20 49 6e 20 6d 61 6e 79 20 63 61 t.can.be.determined...In.many.ca
5fe0 73 65 73 2c 20 69 74 20 63 61 6e 27 74 20 61 6e 64 20 77 65 20 72 65 74 75 72 6e 20 2d 31 2e 00 ses,.it.can't.and.we.return.-1..
6000 61 64 00 00 2d 00 00 00 55 02 00 00 00 10 00 00 83 00 00 00 00 00 00 00 ce 0f 00 00 ba 0f 00 00 ad..-...U.......................
6020 b5 0f 00 00 ae 0f 00 00 71 0f 00 00 56 0f 00 00 4e 0f 00 00 13 0f 00 00 fd 0e 00 00 ea 0e 00 00 ........q...V...N...............
6040 d4 0e 00 00 d3 0e 00 00 af 0e 00 00 9f 0e 00 00 5e 0e 00 00 4a 0e 00 00 1a 0e 00 00 fc 0d 00 00 ................^...J...........
6060 d1 0d 00 00 c8 0d 00 00 9b 0d 00 00 74 0d 00 00 6e 0d 00 00 45 0d 00 00 44 0d 00 00 20 0d 00 00 ............t...n...E...D.......
6080 0f 0d 00 00 ed 0c 00 00 dc 0c 00 00 d6 0c 00 00 c3 0c 00 00 be 0c 00 00 b4 0c 00 00 9d 0c 00 00 ................................
60a0 98 0c 00 00 91 0c 00 00 50 0c 00 00 35 0c 00 00 2d 0c 00 00 f0 0b 00 00 c2 0b 00 00 af 0b 00 00 ........P...5...-...............
60c0 9a 0b 00 00 99 0b 00 00 57 0b 00 00 47 0b 00 00 0e 0b 00 00 fa 0a 00 00 ca 0a 00 00 94 0a 00 00 ........W...G...................
60e0 8e 0a 00 00 66 0a 00 00 65 0a 00 00 3f 0a 00 00 2e 0a 00 00 0c 0a 00 00 fb 09 00 00 f5 09 00 00 ....f...e...?...................
6100 e2 09 00 00 dd 09 00 00 d3 09 00 00 be 09 00 00 b9 09 00 00 b2 09 00 00 71 09 00 00 56 09 00 00 ........................q...V...
6120 4e 09 00 00 15 09 00 00 eb 08 00 00 d8 08 00 00 c3 08 00 00 c2 08 00 00 82 08 00 00 72 08 00 00 N...........................r...
6140 39 08 00 00 25 08 00 00 f5 07 00 00 bf 07 00 00 b9 07 00 00 91 07 00 00 90 07 00 00 6c 07 00 00 9...%.......................l...
6160 5b 07 00 00 39 07 00 00 28 07 00 00 22 07 00 00 0f 07 00 00 0a 07 00 00 00 07 00 00 e7 06 00 00 [...9...(..."...................
6180 ae 06 00 00 90 06 00 00 57 06 00 00 40 06 00 00 0e 06 00 00 f5 05 00 00 ad 05 00 00 a2 05 00 00 ........W...@...................
61a0 98 05 00 00 95 05 00 00 89 05 00 00 87 05 00 00 86 05 00 00 83 05 00 00 6b 05 00 00 23 05 00 00 ........................k...#...
61c0 dc 04 00 00 d9 04 00 00 8b 04 00 00 50 04 00 00 4d 04 00 00 07 04 00 00 e3 03 00 00 df 03 00 00 ............P...M...............
61e0 da 03 00 00 9d 03 00 00 9b 03 00 00 7f 03 00 00 48 03 00 00 47 03 00 00 43 03 00 00 f7 02 00 00 ................H...G...C.......
6200 de 02 00 00 d9 02 00 00 b7 02 00 00 b4 02 00 00 82 02 00 00 73 02 00 00 5b 02 00 00 5a 02 00 00 ....................s...[...Z...
6220 55 02 00 00 54 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 U...T...........................
6240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 09 2f 2a 00 00 09 09 43 6f 6e ......................./*....Con
6260 73 74 09 20 20 20 2a 73 65 63 6f 6e 64 5f 61 72 67 3b 00 09 09 69 6e 74 09 09 09 6e 61 72 67 73 st....*second_arg;...int...nargs
6280 3b 00 09 09 63 6f 6e 73 74 20 46 75 6e 63 45 78 70 72 20 2a 66 75 6e 63 20 3d 20 28 63 6f 6e 73 ;...const.FuncExpr.*func.=.(cons
62a0 74 20 46 75 6e 63 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 7b 00 09 69 66 20 28 65 78 70 72 t.FuncExpr.*).expr;..{..if.(expr
62c0 20 26 26 20 49 73 41 28 65 78 70 72 2c 20 46 75 6e 63 45 78 70 72 29 29 00 09 20 2a 2f 00 09 20 .&&.IsA(expr,.FuncExpr))...*/...
62e0 2a 20 61 72 65 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 73 00 09 20 2a 20 53 63 61 6c 61 *.are.ArrayCoerceExprs...*.Scala
6300 72 2d 74 79 70 65 20 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f 6e 73 20 61 72 65 20 46 75 6e 63 r-type.length.coercions.are.Func
6320 45 78 70 72 73 2c 20 61 72 72 61 79 2d 74 79 70 65 20 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f Exprs,.array-type.length.coercio
6340 6e 73 00 09 2f 2a 00 00 09 09 2a 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 3d 20 2d 31 3b 09 2f ns../*....*coercedTypmod.=.-1;./
6360 2a 20 64 65 66 61 75 6c 74 20 72 65 73 75 6c 74 20 6f 6e 20 66 61 69 6c 75 72 65 20 2a 2f 00 09 *.default.result.on.failure.*/..
6380 69 66 20 28 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 21 3d 20 4e 55 4c 4c 29 00 7b 00 65 78 70 if.(coercedTypmod.!=.NULL).{.exp
63a0 72 49 73 4c 65 6e 67 74 68 43 6f 65 72 63 69 6f 6e 28 63 6f 6e 73 74 20 4e 6f 64 65 20 2a 65 78 rIsLengthCoercion(const.Node.*ex
63c0 70 72 2c 20 69 6e 74 33 32 20 2a 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 29 00 62 6f 6f 6c 00 20 pr,.int32.*coercedTypmod).bool..
63e0 2a 2f 00 20 2a 20 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f 6e 20 62 79 20 74 68 69 73 20 72 6f */..*.length.coercion.by.this.ro
6400 75 74 69 6e 65 2e 00 20 2a 20 4e 6f 74 65 20 74 68 61 74 20 61 20 63 6f 6d 62 69 6e 65 64 20 74 utine...*.Note.that.a.combined.t
6420 79 70 65 2d 61 6e 64 2d 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f 6e 20 77 69 6c 6c 20 62 65 20 ype-and-length.coercion.will.be.
6440 74 72 65 61 74 65 64 20 61 73 20 61 00 20 2a 00 20 2a 20 69 73 20 61 20 6c 65 6e 67 74 68 2d 63 treated.as.a..*..*.is.a.length-c
6460 6f 65 72 63 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2c 20 65 6c 73 65 20 2d 31 20 69 73 20 73 74 6f oercion.function,.else.-1.is.sto
6480 72 65 64 20 74 68 65 72 65 2e 00 20 2a 20 49 66 20 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 69 red.there...*.If.coercedTypmod.i
64a0 73 20 6e 6f 74 20 4e 55 4c 4c 2c 20 74 68 65 20 74 79 70 6d 6f 64 20 69 73 20 73 74 6f 72 65 64 s.not.NULL,.the.typmod.is.stored
64c0 20 74 68 65 72 65 20 69 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 00 20 2a 00 20 2a 09 09 .there.if.the.expression..*..*..
64e0 74 79 70 6d 6f 64 2d 63 6f 65 72 63 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 20 20 4f 70 74 69 6f typmod-coercion.function...Optio
6500 6e 61 6c 6c 79 20 65 78 74 72 61 63 74 20 74 68 65 20 72 65 73 75 6c 74 27 73 20 74 79 70 6d 6f nally.extract.the.result's.typmo
6520 64 2e 00 20 2a 09 09 44 65 74 65 63 74 20 77 68 65 74 68 65 72 20 61 6e 20 65 78 70 72 65 73 73 d...*..Detect.whether.an.express
6540 69 6f 6e 20 74 72 65 65 20 69 73 20 61 6e 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 6f 66 20 61 20 ion.tree.is.an.application.of.a.
6560 64 61 74 61 74 79 70 65 27 73 00 20 2a 20 65 78 70 72 49 73 4c 65 6e 67 74 68 43 6f 65 72 63 69 datatype's..*.exprIsLengthCoerci
6580 6f 6e 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 7d 00 09 09 09 62 72 65 61 6b on./*..}..return.-1;..}....break
65a0 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 72 65 74 75 72 6e 20 65 78 70 72 54 79 70 6d 6f ;...default:....return.exprTypmo
65c0 64 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 d((Node.*).((const.PlaceHolderVa
65e0 72 20 2a 29 20 65 78 70 72 29 2d 3e 70 68 65 78 70 72 29 3b 00 09 09 63 61 73 65 20 54 5f 50 6c r.*).expr)->phexpr);...case.T_Pl
6600 61 63 65 48 6f 6c 64 65 72 56 61 72 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 aceHolderVar:....return.((const.
6620 53 65 74 54 6f 44 65 66 61 75 6c 74 20 2a 29 20 65 78 70 72 29 2d 3e 74 79 70 65 4d 6f 64 3b 00 SetToDefault.*).expr)->typeMod;.
6640 09 09 63 61 73 65 20 54 5f 53 65 74 54 6f 44 65 66 61 75 6c 74 3a 00 09 09 09 72 65 74 75 72 6e ..case.T_SetToDefault:....return
6660 20 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 20 2a 29 20 .((const.CoerceToDomainValue.*).
6680 65 78 70 72 29 2d 3e 74 79 70 65 4d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 expr)->typeMod;...case.T_CoerceT
66a0 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 oDomainValue:....return.((const.
66c0 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 74 CoerceToDomain.*).expr)->resultt
66e0 79 70 6d 6f 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 3a 00 ypmod;...case.T_CoerceToDomain:.
6700 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 74 79 70 6d 6f 64 ...break;....}.....return.typmod
6720 3b 00 09 09 09 09 7d 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 ;.....}.......return.-1;......if
6740 20 28 65 78 70 72 54 79 70 6d 6f 64 28 65 29 20 21 3d 20 74 79 70 6d 6f 64 29 00 09 09 09 09 09 .(exprTypmod(e).!=.typmod)......
6760 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 65 28 65 29 .return.-1;......if.(exprType(e)
6780 20 21 3d 20 6d 69 6e 6d 61 78 74 79 70 65 29 00 00 09 09 09 09 09 4e 6f 64 65 09 20 20 20 2a 65 .!=.minmaxtype).......Node....*e
67a0 20 3d 20 28 4e 6f 64 65 20 2a 29 20 6c 66 69 72 73 74 28 61 72 67 29 3b 00 09 09 09 09 7b 00 09 .=.(Node.*).lfirst(arg);.....{..
67c0 09 09 09 66 6f 72 5f 65 61 63 68 5f 63 65 6c 6c 28 61 72 67 2c 20 6c 6e 65 78 74 28 6c 69 73 74 ...for_each_cell(arg,.lnext(list
67e0 5f 68 65 61 64 28 6d 65 78 70 72 2d 3e 61 72 67 73 29 29 29 00 09 09 09 09 09 72 65 74 75 72 6e _head(mexpr->args)))......return
6800 20 2d 31 3b 09 2f 2a 20 6e 6f 20 70 6f 69 6e 74 20 69 6e 20 74 72 79 69 6e 67 20 68 61 72 64 65 .-1;./*.no.point.in.trying.harde
6820 72 20 2a 2f 00 09 09 09 09 69 66 20 28 74 79 70 6d 6f 64 20 3c 20 30 29 00 09 09 09 09 74 79 70 r.*/.....if.(typmod.<.0).....typ
6840 6d 6f 64 20 3d 20 65 78 70 72 54 79 70 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 74 69 mod.=.exprTypmod((Node.*).liniti
6860 61 6c 28 6d 65 78 70 72 2d 3e 61 72 67 73 29 29 3b 00 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 al(mexpr->args));......return.-1
6880 3b 00 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 ;.....if.(exprType((Node.*).lini
68a0 74 69 61 6c 28 6d 65 78 70 72 2d 3e 61 72 67 73 29 29 20 21 3d 20 6d 69 6e 6d 61 78 74 79 70 65 tial(mexpr->args)).!=.minmaxtype
68c0 29 00 00 09 09 09 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 61 72 67 3b 00 09 09 09 09 69 6e 74 33 )......ListCell...*arg;.....int3
68e0 32 09 09 74 79 70 6d 6f 64 3b 00 09 09 09 09 4f 69 64 09 09 09 6d 69 6e 6d 61 78 74 79 70 65 20 2..typmod;.....Oid...minmaxtype.
6900 3d 20 6d 65 78 70 72 2d 3e 6d 69 6e 6d 61 78 74 79 70 65 3b 00 09 09 09 09 63 6f 6e 73 74 20 4d =.mexpr->minmaxtype;.....const.M
6920 69 6e 4d 61 78 45 78 70 72 20 2a 6d 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 4d 69 6e 4d 61 78 inMaxExpr.*mexpr.=.(const.MinMax
6940 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 74 79 70 Expr.*).expr;......*/......*.typ
6960 6d 6f 64 2c 20 65 6c 73 65 20 75 73 65 20 2d 31 00 09 09 09 09 20 2a 20 49 66 20 61 6c 6c 20 74 mod,.else.use.-1......*.If.all.t
6980 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 61 67 72 65 65 20 6f 6e 20 74 79 70 65 2f 74 79 he.alternatives.agree.on.type/ty
69a0 70 6d 6f 64 2c 20 72 65 74 75 72 6e 20 74 68 61 74 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 09 pmod,.return.that...../*....{...
69c0 63 61 73 65 20 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 case.T_MinMaxExpr:....break;....
69e0 7d 00 09 09 09 09 72 65 74 75 72 6e 20 74 79 70 6d 6f 64 3b 00 09 09 09 09 7d 00 09 09 09 09 09 }.....return.typmod;.....}......
6a00 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 6d 6f 64 28 .return.-1;......if.(exprTypmod(
6a20 65 29 20 21 3d 20 74 79 70 6d 6f 64 29 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 e).!=.typmod).......return.-1;..
6a40 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 65 28 65 29 20 21 3d 20 63 6f 61 6c 65 73 63 65 74 ....if.(exprType(e).!=.coalescet
6a60 79 70 65 29 00 00 09 09 09 09 09 4e 6f 64 65 09 20 20 20 2a 65 20 3d 20 28 4e 6f 64 65 20 2a 29 ype).......Node....*e.=.(Node.*)
6a80 20 6c 66 69 72 73 74 28 61 72 67 29 3b 00 09 09 09 09 7b 00 09 09 09 09 66 6f 72 5f 65 61 63 68 .lfirst(arg);.....{.....for_each
6aa0 5f 63 65 6c 6c 28 61 72 67 2c 20 6c 6e 65 78 74 28 6c 69 73 74 5f 68 65 61 64 28 63 65 78 70 72 _cell(arg,.lnext(list_head(cexpr
6ac0 2d 3e 61 72 67 73 29 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 09 2f 2a 20 6e 6f 20 ->args)))......return.-1;./*.no.
6ae0 70 6f 69 6e 74 20 69 6e 20 74 72 79 69 6e 67 20 68 61 72 64 65 72 20 2a 2f 00 09 09 09 09 69 66 point.in.trying.harder.*/.....if
6b00 20 28 74 79 70 6d 6f 64 20 3c 20 30 29 00 09 09 09 09 74 79 70 6d 6f 64 20 3d 20 65 78 70 72 54 .(typmod.<.0).....typmod.=.exprT
6b20 79 70 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 63 65 78 70 72 2d 3e 61 ypmod((Node.*).linitial(cexpr->a
6b40 72 67 73 29 29 3b 00 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 69 66 20 28 65 rgs));......return.-1;.....if.(e
6b60 78 70 72 54 79 70 65 28 28 4e 6f 64 65 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 63 65 78 70 72 2d xprType((Node.*).linitial(cexpr-
6b80 3e 61 72 67 73 29 29 20 21 3d 20 63 6f 61 6c 65 73 63 65 74 79 70 65 29 00 00 09 09 09 09 4c 69 >args)).!=.coalescetype)......Li
6ba0 73 74 43 65 6c 6c 20 20 20 2a 61 72 67 3b 00 09 09 09 09 69 6e 74 33 32 09 09 74 79 70 6d 6f 64 stCell...*arg;.....int32..typmod
6bc0 3b 00 09 09 09 09 4f 69 64 09 09 09 63 6f 61 6c 65 73 63 65 74 79 70 65 20 3d 20 63 65 78 70 72 ;.....Oid...coalescetype.=.cexpr
6be0 2d 3e 63 6f 61 6c 65 73 63 65 74 79 70 65 3b 00 09 09 09 09 63 6f 6e 73 74 20 43 6f 61 6c 65 73 ->coalescetype;.....const.Coales
6c00 63 65 45 78 70 72 20 2a 63 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 43 6f 61 6c 65 73 63 65 45 ceExpr.*cexpr.=.(const.CoalesceE
6c20 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 74 79 70 6d xpr.*).expr;......*/......*.typm
6c40 6f 64 2c 20 65 6c 73 65 20 75 73 65 20 2d 31 00 09 09 09 09 20 2a 20 49 66 20 61 6c 6c 20 74 68 od,.else.use.-1......*.If.all.th
6c60 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 61 67 72 65 65 20 6f 6e 20 74 79 70 65 2f 74 79 70 e.alternatives.agree.on.type/typ
6c80 6d 6f 64 2c 20 72 65 74 75 72 6e 20 74 68 61 74 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 09 63 mod,.return.that...../*....{...c
6ca0 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ase.T_CoalesceExpr:....break;...
6cc0 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 74 79 70 6d 6f 64 3b 00 09 09 09 09 7d 00 09 09 09 09 .}.....return.typmod;.....}.....
6ce0 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 6d 6f 64 ..return.-1;......if.(exprTypmod
6d00 28 65 29 20 21 3d 20 74 79 70 6d 6f 64 29 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 (e).!=.typmod).......return.-1;.
6d20 09 09 09 09 09 69 66 20 28 65 78 70 72 54 79 70 65 28 65 29 20 21 3d 20 63 6f 6d 6d 6f 6e 74 79 .....if.(exprType(e).!=.commonty
6d40 70 65 29 00 00 09 09 09 09 09 4e 6f 64 65 09 20 20 20 2a 65 20 3d 20 28 4e 6f 64 65 20 2a 29 20 pe).......Node....*e.=.(Node.*).
6d60 6c 66 69 72 73 74 28 65 6c 65 6d 29 3b 00 09 09 09 09 7b 00 09 09 09 09 66 6f 72 65 61 63 68 28 lfirst(elem);.....{.....foreach(
6d80 65 6c 65 6d 2c 20 61 72 72 61 79 65 78 70 72 2d 3e 65 6c 65 6d 65 6e 74 73 29 00 09 09 09 09 09 elem,.arrayexpr->elements)......
6da0 63 6f 6d 6d 6f 6e 74 79 70 65 20 3d 20 61 72 72 61 79 65 78 70 72 2d 3e 65 6c 65 6d 65 6e 74 5f commontype.=.arrayexpr->element_
6dc0 74 79 70 65 69 64 3b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 09 63 6f 6d 6d 6f 6e 74 79 70 65 typeid;.....else......commontype
6de0 20 3d 20 61 72 72 61 79 65 78 70 72 2d 3e 61 72 72 61 79 5f 74 79 70 65 69 64 3b 00 09 09 09 09 .=.arrayexpr->array_typeid;.....
6e00 69 66 20 28 61 72 72 61 79 65 78 70 72 2d 3e 6d 75 6c 74 69 64 69 6d 73 29 00 09 09 09 09 09 72 if.(arrayexpr->multidims)......r
6e20 65 74 75 72 6e 20 2d 31 3b 09 2f 2a 20 6e 6f 20 70 6f 69 6e 74 20 69 6e 20 74 72 79 69 6e 67 20 eturn.-1;./*.no.point.in.trying.
6e40 68 61 72 64 65 72 20 2a 2f 00 09 09 09 09 69 66 20 28 74 79 70 6d 6f 64 20 3c 20 30 29 00 09 09 harder.*/.....if.(typmod.<.0)...
6e60 09 09 74 79 70 6d 6f 64 20 3d 20 65 78 70 72 54 79 70 6d 6f 64 28 28 4e 6f 64 65 20 2a 29 20 6c ..typmod.=.exprTypmod((Node.*).l
6e80 69 6e 69 74 69 61 6c 28 61 72 72 61 79 65 78 70 72 2d 3e 65 6c 65 6d 65 6e 74 73 29 29 3b 00 09 initial(arrayexpr->elements));..
6ea0 09 09 09 09 72 65 74 75 72 6e 20 2d 31 3b 00 09 09 09 09 69 66 20 28 61 72 72 61 79 65 78 70 72 ....return.-1;.....if.(arrayexpr
6ec0 2d 3e 65 6c 65 6d 65 6e 74 73 20 3d 3d 20 4e 49 4c 29 00 00 09 09 09 09 4c 69 73 74 43 65 6c 6c ->elements.==.NIL)......ListCell
6ee0 20 20 20 2a 65 6c 65 6d 3b 00 09 09 09 09 69 6e 74 33 32 09 09 74 79 70 6d 6f 64 3b 00 09 09 09 ...*elem;.....int32..typmod;....
6f00 09 4f 69 64 09 09 09 63 6f 6d 6d 6f 6e 74 79 70 65 3b 00 09 09 09 09 63 6f 6e 73 74 20 41 72 72 .Oid...commontype;.....const.Arr
6f20 61 79 45 78 70 72 20 2a 61 72 72 61 79 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 41 72 72 61 79 ayExpr.*arrayexpr.=.(const.Array
6f40 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 74 79 70 Expr.*).expr;......*/......*.typ
6f60 6d 6f 64 2c 20 65 6c 73 65 20 75 73 65 20 2d 31 00 09 09 09 09 20 2a 20 49 66 20 61 6c 6c 20 74 mod,.else.use.-1......*.If.all.t
6f80 68 65 20 65 6c 65 6d 65 6e 74 73 20 61 67 72 65 65 20 6f 6e 20 74 79 70 65 2f 74 79 70 6d 6f 64 he.elements.agree.on.type/typmod
6fa0 2c 20 72 65 74 75 72 6e 20 74 68 61 74 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 09 63 61 73 65 ,.return.that...../*....{...case
6fc0 20 54 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 28 28 63 6f 6e 73 74 20 .T_ArrayExpr:....return.((const.
6fe0 43 61 73 65 54 65 73 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 74 79 70 65 4d 6f 64 3b 00 CaseTestExpr.*).expr)->typeMod;.
7000 61 64 00 00 0d 00 00 00 3d 02 00 00 00 10 00 00 85 00 00 00 00 00 00 00 c8 0f 00 00 c2 0f 00 00 ad......=.......................
7020 90 0f 00 00 63 0f 00 00 52 0f 00 00 51 0f 00 00 4c 0f 00 00 08 0f 00 00 c0 0e 00 00 7d 0e 00 00 ....c...R...Q...L...........}...
7040 77 0e 00 00 54 0e 00 00 36 0e 00 00 25 0e 00 00 24 0e 00 00 f6 0d 00 00 d5 0d 00 00 ae 0d 00 00 w...T...6...%...$...............
7060 92 0d 00 00 81 0d 00 00 80 0d 00 00 7b 0d 00 00 49 0d 00 00 43 0d 00 00 26 0d 00 00 eb 0c 00 00 ............{...I...C...&.......
7080 ea 0c 00 00 db 0c 00 00 d8 0c 00 00 d7 0c 00 00 ae 0c 00 00 ab 0c 00 00 68 0c 00 00 67 0c 00 00 ........................h...g...
70a0 21 0c 00 00 00 0c 00 00 ef 0b 00 00 ee 0b 00 00 e9 0b 00 00 b5 0b 00 00 af 0b 00 00 92 0b 00 00 !...............................
70c0 67 0b 00 00 66 0b 00 00 57 0b 00 00 54 0b 00 00 53 0b 00 00 44 0b 00 00 42 0b 00 00 41 0b 00 00 g...f...W...T...S...D...B...A...
70e0 3e 0b 00 00 29 0b 00 00 de 0a 00 00 db 0a 00 00 92 0a 00 00 45 0a 00 00 18 0a 00 00 14 0a 00 00 >...)...............E...........
7100 0d 0a 00 00 e1 09 00 00 df 09 00 00 c1 09 00 00 9e 09 00 00 9d 09 00 00 6f 09 00 00 47 09 00 00 ........................o...G...
7120 18 09 00 00 17 09 00 00 cb 08 00 00 87 08 00 00 67 08 00 00 65 08 00 00 64 08 00 00 61 08 00 00 ................g...e...d...a...
7140 15 08 00 00 12 08 00 00 ca 07 00 00 a0 07 00 00 9d 07 00 00 55 07 00 00 0b 07 00 00 07 07 00 00 ....................U...........
7160 00 07 00 00 db 06 00 00 d9 06 00 00 c6 06 00 00 b7 06 00 00 9d 06 00 00 9a 06 00 00 75 06 00 00 ............................u...
7180 74 06 00 00 47 06 00 00 10 06 00 00 0d 06 00 00 eb 05 00 00 e8 05 00 00 bf 05 00 00 be 05 00 00 t...G...........................
71a0 8e 05 00 00 59 05 00 00 56 05 00 00 34 05 00 00 31 05 00 00 08 05 00 00 07 05 00 00 d8 04 00 00 ....Y...V...4...1...............
71c0 a3 04 00 00 a0 04 00 00 7a 04 00 00 77 04 00 00 46 04 00 00 45 04 00 00 16 04 00 00 e1 03 00 00 ........z...w...F...E...........
71e0 de 03 00 00 b5 03 00 00 b2 03 00 00 7b 03 00 00 7a 03 00 00 4a 03 00 00 15 03 00 00 12 03 00 00 ............{...z...J...........
7200 ed 02 00 00 ea 02 00 00 bb 02 00 00 ba 02 00 00 89 02 00 00 54 02 00 00 51 02 00 00 43 02 00 00 ....................T...Q...C...
7220 41 02 00 00 40 02 00 00 3d 02 00 00 3c 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 2a 00 A...@...=...<................/*.
7240 00 7d 00 09 72 65 74 75 72 6e 20 6e 6f 64 65 3b 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 73 74 .}..return.node;..}....return.st
7260 72 69 70 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 28 28 4e 6f 64 65 20 2a 29 20 rip_implicit_coercions((Node.*).
7280 63 2d 3e 61 72 67 29 3b 00 09 09 69 66 20 28 63 2d 3e 63 6f 65 72 63 69 6f 6e 66 6f 72 6d 61 74 c->arg);...if.(c->coercionformat
72a0 20 3d 3d 20 43 4f 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 5f 43 41 53 54 29 00 00 09 09 43 6f 65 .==.COERCE_IMPLICIT_CAST)....Coe
72c0 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 63 20 3d 20 28 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e rceToDomain.*c.=.(CoerceToDomain
72e0 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 09 65 6c 73 65 20 69 66 20 28 49 73 41 28 6e 6f 64 65 2c .*).node;..{..else.if.(IsA(node,
7300 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 29 29 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 73 .CoerceToDomain))..}....return.s
7320 74 72 69 70 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 28 28 4e 6f 64 65 20 2a 29 trip_implicit_coercions((Node.*)
7340 20 63 2d 3e 61 72 67 29 3b 00 09 09 69 66 20 28 63 2d 3e 63 6f 6e 76 65 72 74 66 6f 72 6d 61 74 .c->arg);...if.(c->convertformat
7360 20 3d 3d 20 43 4f 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 5f 43 41 53 54 29 00 00 09 09 43 6f 6e .==.COERCE_IMPLICIT_CAST)....Con
7380 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 20 2a 63 20 3d 20 28 43 6f 6e 76 65 72 74 52 6f 77 vertRowtypeExpr.*c.=.(ConvertRow
73a0 74 79 70 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 09 65 6c 73 65 20 69 66 20 28 49 typeExpr.*).node;..{..else.if.(I
73c0 73 41 28 6e 6f 64 65 2c 20 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 29 29 00 09 7d sA(node,.ConvertRowtypeExpr))..}
73e0 00 09 09 09 72 65 74 75 72 6e 20 73 74 72 69 70 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 ....return.strip_implicit_coerci
7400 6f 6e 73 28 28 4e 6f 64 65 20 2a 29 20 63 2d 3e 61 72 67 29 3b 00 09 09 69 66 20 28 63 2d 3e 63 ons((Node.*).c->arg);...if.(c->c
7420 6f 65 72 63 65 66 6f 72 6d 61 74 20 3d 3d 20 43 4f 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 5f 43 oerceformat.==.COERCE_IMPLICIT_C
7440 41 53 54 29 00 00 09 09 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 63 20 3d 20 28 41 72 AST)....ArrayCoerceExpr.*c.=.(Ar
7460 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 09 65 6c 73 65 20 rayCoerceExpr.*).node;..{..else.
7480 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 29 29 00 if.(IsA(node,.ArrayCoerceExpr)).
74a0 09 7d 00 09 09 09 72 65 74 75 72 6e 20 73 74 72 69 70 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 .}....return.strip_implicit_coer
74c0 63 69 6f 6e 73 28 28 4e 6f 64 65 20 2a 29 20 63 2d 3e 61 72 67 29 3b 00 09 09 69 66 20 28 63 2d cions((Node.*).c->arg);...if.(c-
74e0 3e 63 6f 65 72 63 65 66 6f 72 6d 61 74 20 3d 3d 20 43 4f 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 >coerceformat.==.COERCE_IMPLICIT
7500 5f 43 41 53 54 29 00 00 09 09 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 63 20 3d 20 28 43 6f 65 72 _CAST)....CoerceViaIO.*c.=.(Coer
7520 63 65 56 69 61 49 4f 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 09 65 6c 73 65 20 69 66 20 28 49 73 ceViaIO.*).node;..{..else.if.(Is
7540 41 28 6e 6f 64 65 2c 20 43 6f 65 72 63 65 56 69 61 49 4f 29 29 00 09 7d 00 09 09 09 72 65 74 75 A(node,.CoerceViaIO))..}....retu
7560 72 6e 20 73 74 72 69 70 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 28 28 4e 6f 64 rn.strip_implicit_coercions((Nod
7580 65 20 2a 29 20 72 2d 3e 61 72 67 29 3b 00 09 09 69 66 20 28 72 2d 3e 72 65 6c 61 62 65 6c 66 6f e.*).r->arg);...if.(r->relabelfo
75a0 72 6d 61 74 20 3d 3d 20 43 4f 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 5f 43 41 53 54 29 00 00 09 rmat.==.COERCE_IMPLICIT_CAST)...
75c0 09 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 72 20 3d 20 28 52 65 6c 61 62 65 6c 54 79 70 65 20 2a .RelabelType.*r.=.(RelabelType.*
75e0 29 20 6e 6f 64 65 3b 00 09 7b 00 09 65 6c 73 65 20 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 52 ).node;..{..else.if.(IsA(node,.R
7600 65 6c 61 62 65 6c 54 79 70 65 29 29 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 73 74 72 69 70 5f elabelType))..}....return.strip_
7620 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 28 6c 69 6e 69 74 69 61 6c 28 66 2d 3e 61 implicit_coercions(linitial(f->a
7640 72 67 73 29 29 3b 00 09 09 69 66 20 28 66 2d 3e 66 75 6e 63 66 6f 72 6d 61 74 20 3d 3d 20 43 4f rgs));...if.(f->funcformat.==.CO
7660 45 52 43 45 5f 49 4d 50 4c 49 43 49 54 5f 43 41 53 54 29 00 00 09 09 46 75 6e 63 45 78 70 72 20 ERCE_IMPLICIT_CAST)....FuncExpr.
7680 20 20 2a 66 20 3d 20 28 46 75 6e 63 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 09 69 66 ..*f.=.(FuncExpr.*).node;..{..if
76a0 20 28 49 73 41 28 6e 6f 64 65 2c 20 46 75 6e 63 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 .(IsA(node,.FuncExpr))...return.
76c0 4e 55 4c 4c 3b 00 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 00 7b 00 73 74 72 69 70 NULL;..if.(node.==.NULL).{.strip
76e0 5f 69 6d 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 28 4e 6f 64 65 20 2a 6e 6f 64 65 29 00 _implicit_coercions(Node.*node).
7700 4e 6f 64 65 20 2a 00 20 2a 2f 00 20 2a 20 6a 75 73 74 20 72 65 74 75 72 6e 20 69 74 20 75 6e 63 Node.*..*/..*.just.return.it.unc
7720 68 61 6e 67 65 64 2c 20 65 76 65 6e 20 69 66 20 69 74 27 73 20 6d 61 72 6b 65 64 20 61 73 20 61 hanged,.even.if.it's.marked.as.a
7740 6e 20 69 6d 70 6c 69 63 69 74 20 63 6f 65 72 63 69 6f 6e 2e 00 20 2a 20 4e 6f 74 65 3a 20 74 68 n.implicit.coercion...*.Note:.th
7760 65 72 65 20 69 73 6e 27 74 20 61 6e 79 20 75 73 65 66 75 6c 20 74 68 69 6e 67 20 77 65 20 63 61 ere.isn't.any.useful.thing.we.ca
7780 6e 20 64 6f 20 77 69 74 68 20 61 20 52 6f 77 45 78 70 72 20 68 65 72 65 2c 20 73 6f 00 20 2a 00 n.do.with.a.RowExpr.here,.so..*.
77a0 20 2a 20 70 6f 69 6e 74 65 72 20 74 6f 20 61 20 73 75 69 74 61 62 6c 65 20 70 6c 61 63 65 20 77 .*.pointer.to.a.suitable.place.w
77c0 69 74 68 69 6e 20 69 74 2e 00 20 2a 20 54 68 69 73 20 64 6f 65 73 6e 27 74 20 6d 6f 64 69 66 79 ithin.it...*.This.doesn't.modify
77e0 20 6f 72 20 63 6f 70 79 20 74 68 65 20 69 6e 70 75 74 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 .or.copy.the.input.expression.tr
7800 65 65 2c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 61 00 20 2a 00 20 2a 20 73 74 72 69 70 5f 69 6d ee,.just.return.a..*..*.strip_im
7820 70 6c 69 63 69 74 5f 63 6f 65 72 63 69 6f 6e 73 3a 20 72 65 6d 6f 76 65 20 69 6d 70 6c 69 63 69 plicit_coercions:.remove.implici
7840 74 20 63 6f 65 72 63 69 6f 6e 73 20 61 74 20 74 6f 70 20 6c 65 76 65 6c 20 6f 66 20 74 72 65 65 t.coercions.at.top.level.of.tree
7860 00 2f 2a 00 00 7d 00 09 09 09 09 09 09 09 09 09 43 4f 45 52 43 45 5f 45 58 50 4c 49 43 49 54 5f ./*..}..........COERCE_EXPLICIT_
7880 43 41 53 54 29 3b 00 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6d 61 6b 65 52 65 6c 61 CAST);..return.(Node.*).makeRela
78a0 62 65 6c 54 79 70 65 28 28 45 78 70 72 20 2a 29 20 65 78 70 72 2c 20 74 79 70 65 2c 20 74 79 70 belType((Expr.*).expr,.type,.typ
78c0 6d 6f 64 2c 20 63 6f 6c 6c 2c 00 09 2f 2a 20 41 70 70 6c 79 20 6e 65 77 20 74 79 70 6d 6f 64 2c mod,.coll,../*.Apply.new.typmod,
78e0 20 70 72 65 73 65 72 76 69 6e 67 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 65 78 70 6f 73 65 64 .preserving.the.previous.exposed
7900 20 74 79 70 65 20 61 6e 64 20 63 6f 6c 6c 61 74 69 6f 6e 20 2a 2f 00 00 09 09 65 78 70 72 20 3d .type.and.collation.*/....expr.=
7920 20 28 4e 6f 64 65 20 2a 29 20 28 28 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 65 78 70 72 29 .(Node.*).((RelabelType.*).expr)
7940 2d 3e 61 72 67 3b 00 09 77 68 69 6c 65 20 28 65 78 70 72 20 26 26 20 49 73 41 28 65 78 70 72 2c ->arg;..while.(expr.&&.IsA(expr,
7960 20 52 65 6c 61 62 65 6c 54 79 70 65 29 29 00 09 2f 2a 20 53 74 72 69 70 20 61 6e 79 20 65 78 69 .RelabelType))../*.Strip.any.exi
7980 73 74 69 6e 67 20 52 65 6c 61 62 65 6c 54 79 70 65 20 6e 6f 64 65 28 73 29 20 2a 2f 00 00 09 4f sting.RelabelType.node(s).*/...O
79a0 69 64 09 09 09 63 6f 6c 6c 20 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 65 78 70 72 29 3b id...coll.=.exprCollation(expr);
79c0 00 09 4f 69 64 09 09 09 74 79 70 65 20 3d 20 65 78 70 72 54 79 70 65 28 65 78 70 72 29 3b 00 7b ..Oid...type.=.exprType(expr);.{
79e0 00 72 65 6c 61 62 65 6c 5f 74 6f 5f 74 79 70 6d 6f 64 28 4e 6f 64 65 20 2a 65 78 70 72 2c 20 69 .relabel_to_typmod(Node.*expr,.i
7a00 6e 74 33 32 20 74 79 70 6d 6f 64 29 00 4e 6f 64 65 20 2a 00 20 2a 2f 00 20 2a 20 74 68 61 74 20 nt32.typmod).Node.*..*/..*.that.
7a20 74 68 65 72 65 20 61 72 65 20 6e 6f 74 20 61 64 6a 61 63 65 6e 74 20 52 65 6c 61 62 65 6c 54 79 there.are.not.adjacent.RelabelTy
7a40 70 65 73 2e 00 20 2a 20 73 74 72 69 70 73 20 61 6e 79 20 65 78 69 73 74 69 6e 67 20 52 65 6c 61 pes...*.strips.any.existing.Rela
7a60 62 65 6c 54 79 70 65 20 6e 6f 64 65 73 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 74 68 65 20 70 6c belType.nodes.to.maintain.the.pl
7a80 61 6e 6e 65 72 27 73 20 69 6e 76 61 72 69 61 6e 74 00 20 2a 20 54 68 69 73 20 69 73 20 70 72 69 anner's.invariant..*.This.is.pri
7aa0 6d 61 72 69 6c 79 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 64 20 64 75 72 69 6e marily.intended.to.be.used.durin
7ac0 67 20 70 6c 61 6e 6e 69 6e 67 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 69 74 00 20 2a 00 20 2a g.planning...Therefore,.it..*..*
7ae0 09 09 41 64 64 20 61 20 52 65 6c 61 62 65 6c 54 79 70 65 20 6e 6f 64 65 20 74 68 61 74 20 63 68 ..Add.a.RelabelType.node.that.ch
7b00 61 6e 67 65 73 20 6a 75 73 74 20 74 68 65 20 74 79 70 6d 6f 64 20 6f 66 20 74 68 65 20 65 78 70 anges.just.the.typmod.of.the.exp
7b20 72 65 73 73 69 6f 6e 2e 00 20 2a 20 72 65 6c 61 62 65 6c 5f 74 6f 5f 74 79 70 6d 6f 64 00 2f 2a ression...*.relabel_to_typmod./*
7b40 00 00 7d 00 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 00 09 7d 00 09 09 72 65 74 75 72 6e 20 ..}..return.false;...}...return.
7b60 74 72 75 65 3b 00 00 09 09 09 2a 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 3d 20 61 63 6f 65 72 true;.....*coercedTypmod.=.acoer
7b80 63 65 2d 3e 72 65 73 75 6c 74 74 79 70 6d 6f 64 3b 00 09 09 69 66 20 28 63 6f 65 72 63 65 64 54 ce->resulttypmod;...if.(coercedT
7ba0 79 70 6d 6f 64 20 21 3d 20 4e 55 4c 4c 29 00 09 09 20 2a 2f 00 09 09 20 2a 20 4f 4b 2c 20 69 74 ypmod.!=.NULL)....*/....*.OK,.it
7bc0 20 69 73 20 69 6e 64 65 65 64 20 61 20 6c 65 6e 67 74 68 2d 63 6f 65 72 63 69 6f 6e 20 65 78 70 .is.indeed.a.length-coercion.exp
7be0 72 65 73 73 69 6f 6e 2e 00 09 09 2f 2a 00 00 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 ression..../*.....return.false;.
7c00 09 09 69 66 20 28 61 63 6f 65 72 63 65 2d 3e 72 65 73 75 6c 74 74 79 70 6d 6f 64 20 3c 20 30 29 ..if.(acoerce->resulttypmod.<.0)
7c20 00 09 09 2f 2a 20 49 74 27 73 20 6e 6f 74 20 61 20 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f 6e .../*.It's.not.a.length.coercion
7c40 20 75 6e 6c 65 73 73 20 74 68 65 72 65 27 73 20 61 20 6e 6f 6e 64 65 66 61 75 6c 74 20 74 79 70 .unless.there's.a.nondefault.typ
7c60 6d 6f 64 20 2a 2f 00 00 09 09 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 mod.*/....const.ArrayCoerceExpr.
7c80 2a 61 63 6f 65 72 63 65 20 3d 20 28 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 *acoerce.=.(const.ArrayCoerceExp
7ca0 72 20 2a 29 20 65 78 70 72 3b 00 09 7b 00 09 69 66 20 28 65 78 70 72 20 26 26 20 49 73 41 28 65 r.*).expr;..{..if.(expr.&&.IsA(e
7cc0 78 70 72 2c 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 29 29 00 00 09 7d 00 09 09 72 65 74 xpr,.ArrayCoerceExpr))...}...ret
7ce0 75 72 6e 20 74 72 75 65 3b 00 00 09 09 09 2a 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 3d 20 44 urn.true;.....*coercedTypmod.=.D
7d00 61 74 75 6d 47 65 74 49 6e 74 33 32 28 73 65 63 6f 6e 64 5f 61 72 67 2d 3e 63 6f 6e 73 74 76 61 atumGetInt32(second_arg->constva
7d20 6c 75 65 29 3b 00 09 09 69 66 20 28 63 6f 65 72 63 65 64 54 79 70 6d 6f 64 20 21 3d 20 4e 55 4c lue);...if.(coercedTypmod.!=.NUL
7d40 4c 29 00 09 09 20 2a 2f 00 09 09 20 2a 20 4f 4b 2c 20 69 74 20 69 73 20 69 6e 64 65 65 64 20 61 L)....*/....*.OK,.it.is.indeed.a
7d60 20 6c 65 6e 67 74 68 2d 63 6f 65 72 63 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 2e 00 09 09 2f 2a 00 .length-coercion.function..../*.
7d80 00 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 09 09 73 65 63 6f 6e 64 5f 61 72 67 2d ....return.false;....second_arg-
7da0 3e 63 6f 6e 73 74 69 73 6e 75 6c 6c 29 00 09 09 09 73 65 63 6f 6e 64 5f 61 72 67 2d 3e 63 6f 6e >constisnull)....second_arg->con
7dc0 73 74 74 79 70 65 20 21 3d 20 49 4e 54 34 4f 49 44 20 7c 7c 00 09 09 69 66 20 28 21 49 73 41 28 sttype.!=.INT4OID.||...if.(!IsA(
7de0 73 65 63 6f 6e 64 5f 61 72 67 2c 20 43 6f 6e 73 74 29 20 7c 7c 00 09 09 73 65 63 6f 6e 64 5f 61 second_arg,.Const).||...second_a
7e00 72 67 20 3d 20 28 43 6f 6e 73 74 20 2a 29 20 6c 73 65 63 6f 6e 64 28 66 75 6e 63 2d 3e 61 72 67 rg.=.(Const.*).lsecond(func->arg
7e20 73 29 3b 00 00 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 09 69 66 20 28 6e 61 72 67 s);.....return.false;...if.(narg
7e40 73 20 3c 20 32 20 7c 7c 20 6e 61 72 67 73 20 3e 20 33 29 00 09 09 6e 61 72 67 73 20 3d 20 6c 69 s.<.2.||.nargs.>.3)...nargs.=.li
7e60 73 74 5f 6c 65 6e 67 74 68 28 66 75 6e 63 2d 3e 61 72 67 73 29 3b 00 09 09 20 2a 2f 00 09 09 20 st_length(func->args);....*/....
7e80 2a 20 66 72 6f 6d 20 61 20 6c 65 6e 67 74 68 20 63 6f 65 72 63 69 6f 6e 20 28 69 74 20 6d 75 73 *.from.a.length.coercion.(it.mus
7ea0 74 20 62 65 20 61 20 74 79 70 65 20 63 6f 65 72 63 69 6f 6e 2c 20 69 6e 73 74 65 61 64 29 2e 00 t.be.a.type.coercion,.instead)..
7ec0 09 09 20 2a 20 73 65 63 6f 6e 64 20 61 72 67 75 6d 65 6e 74 20 62 65 69 6e 67 20 61 6e 20 69 6e ...*.second.argument.being.an.in
7ee0 74 34 20 63 6f 6e 73 74 61 6e 74 2c 20 69 74 20 63 61 6e 27 74 20 68 61 76 65 20 62 65 65 6e 20 t4.constant,.it.can't.have.been.
7f00 63 72 65 61 74 65 64 00 09 09 20 2a 20 49 66 20 69 74 27 73 20 6e 6f 74 20 61 20 74 77 6f 2d 61 created....*.If.it's.not.a.two-a
7f20 72 67 75 6d 65 6e 74 20 6f 72 20 74 68 72 65 65 2d 61 72 67 75 6d 65 6e 74 20 66 75 6e 63 74 69 rgument.or.three-argument.functi
7f40 6f 6e 20 77 69 74 68 20 74 68 65 00 09 09 2f 2a 00 00 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73 on.with.the.../*.....return.fals
7f60 65 3b 00 09 09 09 66 75 6e 63 2d 3e 66 75 6e 63 66 6f 72 6d 61 74 20 21 3d 20 43 4f 45 52 43 45 e;....func->funcformat.!=.COERCE
7f80 5f 49 4d 50 4c 49 43 49 54 5f 43 41 53 54 29 00 09 09 69 66 20 28 66 75 6e 63 2d 3e 66 75 6e 63 _IMPLICIT_CAST)...if.(func->func
7fa0 66 6f 72 6d 61 74 20 21 3d 20 43 4f 45 52 43 45 5f 45 58 50 4c 49 43 49 54 5f 43 41 53 54 20 26 format.!=.COERCE_EXPLICIT_CAST.&
7fc0 26 00 09 09 20 2a 2f 00 09 09 20 2a 20 49 66 20 69 74 20 64 69 64 6e 27 74 20 63 6f 6d 65 20 66 &....*/....*.If.it.didn't.come.f
7fe0 72 6f 6d 20 61 20 63 6f 65 72 63 69 6f 6e 20 63 6f 6e 74 65 78 74 2c 20 72 65 6a 65 63 74 2e 00 rom.a.coercion.context,.reject..
8000 61 64 00 00 2d 00 00 00 81 02 00 00 00 10 00 00 8e 00 00 00 00 00 00 00 e6 0f 00 00 b0 0f 00 00 ad..-...........................
8020 ad 0f 00 00 65 0f 00 00 1e 0f 00 00 0c 0f 00 00 08 0f 00 00 03 0f 00 00 de 0e 00 00 dc 0e 00 00 ....e...........................
8040 a7 0e 00 00 a5 0e 00 00 a4 0e 00 00 98 0e 00 00 5f 0e 00 00 5d 0e 00 00 4a 0e 00 00 3a 0e 00 00 ................_...]...J...:...
8060 20 0e 00 00 1d 0e 00 00 f5 0d 00 00 f4 0d 00 00 dc 0d 00 00 cc 0d 00 00 a4 0d 00 00 a1 0d 00 00 ................................
8080 89 0d 00 00 86 0d 00 00 61 0d 00 00 60 0d 00 00 4a 0d 00 00 3a 0d 00 00 12 0d 00 00 0f 0d 00 00 ........a...`...J...:...........
80a0 0e 0d 00 00 d0 0c 00 00 b8 0c 00 00 a8 0c 00 00 8c 0c 00 00 7c 0c 00 00 5e 0c 00 00 4e 0c 00 00 ....................|...^...N...
80c0 32 0c 00 00 22 0c 00 00 ff 0b 00 00 ef 0b 00 00 d5 0b 00 00 c5 0b 00 00 ac 0b 00 00 9c 0b 00 00 2..."...........................
80e0 83 0b 00 00 73 0b 00 00 4f 0b 00 00 3f 0b 00 00 24 0b 00 00 14 0b 00 00 fb 0a 00 00 eb 0a 00 00 ....s...O...?...$...............
8100 cb 0a 00 00 bb 0a 00 00 9d 0a 00 00 8d 0a 00 00 71 0a 00 00 61 0a 00 00 48 0a 00 00 38 0a 00 00 ................q...a...H...8...
8120 37 0a 00 00 f3 09 00 00 df 09 00 00 dd 09 00 00 dc 09 00 00 db 09 00 00 d8 09 00 00 c5 09 00 00 7...............................
8140 83 09 00 00 80 09 00 00 3a 09 00 00 ee 08 00 00 a2 08 00 00 58 08 00 00 0f 08 00 00 e6 07 00 00 ........:...........X...........
8160 e2 07 00 00 de 07 00 00 be 07 00 00 bc 07 00 00 af 07 00 00 ae 07 00 00 a2 07 00 00 8d 07 00 00 ................................
8180 8c 07 00 00 74 07 00 00 71 07 00 00 63 07 00 00 38 07 00 00 2e 07 00 00 1e 07 00 00 ef 06 00 00 ....t...q...c...8...............
81a0 e5 06 00 00 d5 06 00 00 a6 06 00 00 9c 06 00 00 8b 06 00 00 5d 06 00 00 53 06 00 00 3c 06 00 00 ....................]...S...<...
81c0 26 06 00 00 1c 06 00 00 07 06 00 00 d5 05 00 00 cb 05 00 00 b8 05 00 00 88 05 00 00 7e 05 00 00 &...........................~...
81e0 6b 05 00 00 3a 05 00 00 30 05 00 00 19 05 00 00 d3 04 00 00 c9 04 00 00 b8 04 00 00 8b 04 00 00 k...:...0.......................
8200 81 04 00 00 6a 04 00 00 37 04 00 00 2d 04 00 00 18 04 00 00 e7 03 00 00 dd 03 00 00 c1 03 00 00 ....j...7...-...................
8220 8c 03 00 00 82 03 00 00 6f 03 00 00 3a 03 00 00 30 03 00 00 1e 03 00 00 19 03 00 00 e4 02 00 00 ........o...:...0...............
8240 e3 02 00 00 b3 02 00 00 87 02 00 00 81 02 00 00 80 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8280 00 09 09 09 09 7b 00 09 09 09 09 09 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 .....{......sublink->subLinkType
82a0 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 69 66 20 28 73 75 62 6c 69 .==.ARRAY_SUBLINK).....if.(subli
82c0 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 nk->subLinkType.==.EXPR_SUBLINK.
82e0 7c 7c 00 00 09 09 09 09 63 6f 6e 73 74 20 53 75 62 4c 69 6e 6b 20 2a 73 75 62 6c 69 6e 6b 20 3d ||......const.SubLink.*sublink.=
8300 20 28 63 6f 6e 73 74 20 53 75 62 4c 69 6e 6b 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 .(const.SubLink.*).expr;....{...
8320 63 61 73 65 20 54 5f 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c case.T_SubLink:....break;....col
8340 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 l.=.InvalidOid;./*.result.is.alw
8360 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 45 78 70 72 ays.boolean.*/...case.T_BoolExpr
8380 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 :....break;....coll.=.InvalidOid
83a0 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f ;./*.result.is.always.boolean.*/
83c0 00 09 09 63 61 73 65 20 54 5f 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 ...case.T_ScalarArrayOpExpr:....
83e0 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 4e 75 6c 6c 49 66 45 break;....coll.=.((const.NullIfE
8400 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 xpr.*).expr)->opcollid;...case.T
8420 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d _NullIfExpr:....break;....coll.=
8440 20 28 28 63 6f 6e 73 74 20 44 69 73 74 69 6e 63 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e .((const.DistinctExpr.*).expr)->
8460 6f 70 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a opcollid;...case.T_DistinctExpr:
8480 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 4f 70 45 ....break;....coll.=.((const.OpE
84a0 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 xpr.*).expr)->opcollid;...case.T
84c0 5f 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 65 78 70 _OpExpr:....break;....coll.=.exp
84e0 72 43 6f 6c 6c 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 4e 61 6d 65 rCollation((Node.*).((const.Name
8500 64 41 72 67 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 63 61 73 65 20 dArgExpr.*).expr)->arg);...case.
8520 54 5f 4e 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c T_NamedArgExpr:....break;....col
8540 6c 20 3d 20 28 28 63 6f 6e 73 74 20 46 75 6e 63 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 66 l.=.((const.FuncExpr.*).expr)->f
8560 75 6e 63 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 unccollid;...case.T_FuncExpr:...
8580 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 52 .break;....coll.=.((const.ArrayR
85a0 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 66 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 ef.*).expr)->refcollid;...case.T
85c0 5f 41 72 72 61 79 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 _ArrayRef:....break;....coll.=.(
85e0 28 63 6f 6e 73 74 20 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 65 78 70 72 29 2d 3e 77 69 6e 63 (const.WindowFunc.*).expr)->winc
8600 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 ollid;...case.T_WindowFunc:....b
8620 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 09 63 61 reak;....coll.=.InvalidOid;...ca
8640 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 se.T_GroupingFunc:....break;....
8660 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 41 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e coll.=.((const.Aggref.*).expr)->
8680 61 67 67 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 41 67 67 72 65 66 3a 00 09 09 09 62 aggcollid;...case.T_Aggref:....b
86a0 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 50 61 72 61 6d 20 2a 29 reak;....coll.=.((const.Param.*)
86c0 20 65 78 70 72 29 2d 3e 70 61 72 61 6d 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 50 61 .expr)->paramcollid;...case.T_Pa
86e0 72 61 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 ram:....break;....coll.=.((const
8700 20 43 6f 6e 73 74 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 6e 73 74 63 6f 6c 6c 69 64 3b 00 09 09 .Const.*).expr)->constcollid;...
8720 63 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 case.T_Const:....break;....coll.
8740 3d 20 28 28 63 6f 6e 73 74 20 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 76 61 72 63 6f 6c 6c 69 =.((const.Var.*).expr)->varcolli
8760 64 3b 00 09 09 63 61 73 65 20 54 5f 56 61 72 3a 00 09 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 d;...case.T_Var:..{..switch.(nod
8780 65 54 61 67 28 65 78 70 72 29 29 00 00 09 09 72 65 74 75 72 6e 20 49 6e 76 61 6c 69 64 4f 69 64 eTag(expr))....return.InvalidOid
87a0 3b 00 09 69 66 20 28 21 65 78 70 72 29 00 00 09 4f 69 64 09 09 09 63 6f 6c 6c 3b 00 7b 00 65 78 ;..if.(!expr)...Oid...coll;.{.ex
87c0 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 63 6f 6e 73 74 20 4e 6f 64 65 20 2a 65 78 70 72 29 00 4f 69 prCollation(const.Node.*expr).Oi
87e0 64 00 20 2a 2f 00 20 2a 20 6f 72 20 76 69 63 65 20 76 65 72 73 61 2c 20 74 68 65 20 74 77 6f 20 d..*/..*.or.vice.versa,.the.two.
8800 61 72 65 20 64 69 66 66 65 72 65 6e 74 2e 00 20 2a 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 64 75 are.different...*.function.produ
8820 63 65 73 20 61 20 6e 6f 6e 2d 63 6f 6c 6c 61 74 61 62 6c 65 20 72 65 73 75 6c 74 20 74 79 70 65 ces.a.non-collatable.result.type
8840 20 66 72 6f 6d 20 63 6f 6c 6c 61 74 61 62 6c 65 20 69 6e 70 75 74 73 00 20 2a 20 62 75 74 20 6e .from.collatable.inputs..*.but.n
8860 6f 74 20 61 6c 77 61 79 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 74 68 65 20 72 65 73 75 6c 74 ot.always.the.same.as.the.result
8880 20 63 6f 6c 6c 61 74 69 6f 6e 3b 20 69 6e 20 70 61 72 74 69 63 75 6c 61 72 2c 20 69 66 20 74 68 .collation;.in.particular,.if.th
88a0 65 00 20 2a 20 54 68 61 74 20 69 73 20 74 68 65 20 72 65 73 6f 6c 76 65 64 20 63 6f 6d 6d 6f 6e e..*.That.is.the.resolved.common
88c0 20 63 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 6f 64 65 27 73 20 69 6e 70 75 74 73 2e .collation.of.the.node's.inputs.
88e0 20 20 49 74 20 69 73 20 6f 66 74 65 6e 00 20 2a 20 22 69 6e 70 75 74 63 6f 6c 6c 69 64 22 20 66 ..It.is.often..*."inputcollid".f
8900 69 65 6c 64 2c 20 77 68 69 63 68 20 69 73 20 77 68 61 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e ield,.which.is.what.the.function
8920 20 73 68 6f 75 6c 64 20 75 73 65 20 61 73 20 63 6f 6c 6c 61 74 69 6f 6e 2e 00 20 2a 20 4e 6f 74 .should.use.as.collation...*.Not
8940 65 3a 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 73 20 74 68 61 74 20 63 61 6e 20 69 6e 76 e:.expression.nodes.that.can.inv
8960 6f 6b 65 20 66 75 6e 63 74 69 6f 6e 73 20 67 65 6e 65 72 61 6c 6c 79 20 68 61 76 65 20 61 6e 00 oke.functions.generally.have.an.
8980 20 2a 00 20 2a 09 20 20 72 65 74 75 72 6e 73 20 74 68 65 20 4f 69 64 20 6f 66 20 74 68 65 20 63 .*..*...returns.the.Oid.of.the.c
89a0 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 27 73 20 72 65 73 ollation.of.the.expression's.res
89c0 75 6c 74 2e 00 20 2a 09 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 20 2d 00 2f 2a 00 00 00 7d 00 09 ult...*.exprCollation.-./*...}..
89e0 09 09 09 09 09 09 09 20 20 63 6f 6e 74 65 78 74 29 3b 00 09 72 65 74 75 72 6e 20 65 78 70 72 65 .........context);..return.expre
8a00 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 6e 6f 64 65 2c 20 65 78 70 72 65 73 73 69 ssion_tree_walker(node,.expressi
8a20 6f 6e 5f 72 65 74 75 72 6e 73 5f 73 65 74 5f 77 61 6c 6b 65 72 2c 00 00 09 09 72 65 74 75 72 6e on_returns_set_walker,....return
8a40 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 58 6d 6c 45 78 70 72 29 29 .false;..if.(IsA(node,.XmlExpr))
8a60 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 ...return.false;..if.(IsA(node,.
8a80 4d 69 6e 4d 61 78 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 MinMaxExpr))...return.false;..if
8aa0 20 28 49 73 41 28 6e 6f 64 65 2c 20 43 6f 61 6c 65 73 63 65 45 78 70 72 29 29 00 09 09 72 65 74 .(IsA(node,.CoalesceExpr))...ret
8ac0 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 52 6f 77 43 6f 6d urn.false;..if.(IsA(node,.RowCom
8ae0 70 61 72 65 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 pareExpr))...return.false;..if.(
8b00 49 73 41 28 6e 6f 64 65 2c 20 52 6f 77 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c IsA(node,.RowExpr))...return.fal
8b20 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 41 72 72 61 79 45 78 70 72 29 29 00 09 se;..if.(IsA(node,.ArrayExpr))..
8b40 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 41 6c .return.false;..if.(IsA(node,.Al
8b60 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 ternativeSubPlan))...return.fals
8b80 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 53 75 62 50 6c 61 6e 29 29 00 09 09 72 65 e;..if.(IsA(node,.SubPlan))...re
8ba0 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 53 75 62 4c 69 turn.false;..if.(IsA(node,.SubLi
8bc0 6e 6b 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f nk))...return.false;..if.(IsA(no
8be0 64 65 2c 20 42 6f 6f 6c 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 de,.BoolExpr))...return.false;..
8c00 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 29 if.(IsA(node,.ScalarArrayOpExpr)
8c20 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c )...return.false;..if.(IsA(node,
8c40 20 4e 75 6c 6c 49 66 45 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 .NullIfExpr))...return.false;..i
8c60 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 44 69 73 74 69 6e 63 74 45 78 70 72 29 29 00 09 09 72 65 f.(IsA(node,.DistinctExpr))...re
8c80 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 57 69 6e 64 6f turn.false;..if.(IsA(node,.Windo
8ca0 77 46 75 6e 63 29 29 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 49 73 41 wFunc))...return.false;..if.(IsA
8cc0 28 6e 6f 64 65 2c 20 41 67 67 72 65 66 29 29 00 09 2f 2a 20 41 76 6f 69 64 20 72 65 63 75 72 73 (node,.Aggref))../*.Avoid.recurs
8ce0 69 6f 6e 20 66 6f 72 20 73 6f 6d 65 20 63 61 73 65 73 20 74 68 61 74 20 63 61 6e 27 74 20 72 65 ion.for.some.cases.that.can't.re
8d00 74 75 72 6e 20 61 20 73 65 74 20 2a 2f 00 00 09 7d 00 09 09 2f 2a 20 65 6c 73 65 20 66 61 6c 6c turn.a.set.*/...}.../*.else.fall
8d20 20 74 68 72 6f 75 67 68 20 74 6f 20 63 68 65 63 6b 20 61 72 67 73 20 2a 2f 00 09 09 09 72 65 74 .through.to.check.args.*/....ret
8d40 75 72 6e 20 74 72 75 65 3b 00 09 09 69 66 20 28 65 78 70 72 2d 3e 6f 70 72 65 74 73 65 74 29 00 urn.true;...if.(expr->opretset).
8d60 00 09 09 4f 70 45 78 70 72 09 20 20 20 2a 65 78 70 72 20 3d 20 28 4f 70 45 78 70 72 20 2a 29 20 ...OpExpr....*expr.=.(OpExpr.*).
8d80 6e 6f 64 65 3b 00 09 7b 00 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 4f 70 45 78 70 72 29 29 node;..{..if.(IsA(node,.OpExpr))
8da0 00 09 7d 00 09 09 2f 2a 20 65 6c 73 65 20 66 61 6c 6c 20 74 68 72 6f 75 67 68 20 74 6f 20 63 68 ..}.../*.else.fall.through.to.ch
8dc0 65 63 6b 20 61 72 67 73 20 2a 2f 00 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 69 66 eck.args.*/....return.true;...if
8de0 20 28 65 78 70 72 2d 3e 66 75 6e 63 72 65 74 73 65 74 29 00 00 09 09 46 75 6e 63 45 78 70 72 20 .(expr->funcretset)....FuncExpr.
8e00 20 20 2a 65 78 70 72 20 3d 20 28 46 75 6e 63 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 7b 00 ..*expr.=.(FuncExpr.*).node;..{.
8e20 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 46 75 6e 63 45 78 70 72 29 29 00 09 09 72 65 74 75 .if.(IsA(node,.FuncExpr))...retu
8e40 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 00 7b 00 65 rn.false;..if.(node.==.NULL).{.e
8e60 78 70 72 65 73 73 69 6f 6e 5f 72 65 74 75 72 6e 73 5f 73 65 74 5f 77 61 6c 6b 65 72 28 4e 6f 64 xpression_returns_set_walker(Nod
8e80 65 20 2a 6e 6f 64 65 2c 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 00 73 74 61 74 69 63 20 62 e.*node,.void.*context).static.b
8ea0 6f 6f 6c 00 00 7d 00 09 72 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f 6e 5f 72 65 74 75 72 6e ool..}..return.expression_return
8ec0 73 5f 73 65 74 5f 77 61 6c 6b 65 72 28 63 6c 61 75 73 65 2c 20 4e 55 4c 4c 29 3b 00 7b 00 65 78 s_set_walker(clause,.NULL);.{.ex
8ee0 70 72 65 73 73 69 6f 6e 5f 72 65 74 75 72 6e 73 5f 73 65 74 28 4e 6f 64 65 20 2a 63 6c 61 75 73 pression_returns_set(Node.*claus
8f00 65 29 00 62 6f 6f 6c 00 20 2a 2f 00 20 2a 20 72 65 74 75 72 6e 73 20 61 20 73 65 74 2e 00 20 2a e).bool..*/..*.returns.a.set...*
8f20 20 77 68 6f 6c 65 20 74 61 72 67 65 74 6c 69 73 74 73 3b 20 69 74 27 6c 6c 20 70 72 6f 64 75 63 .whole.targetlists;.it'll.produc
8f40 65 20 54 52 55 45 20 69 66 20 61 6e 79 20 6f 6e 65 20 6f 66 20 74 68 65 20 74 6c 69 73 74 20 69 e.TRUE.if.any.one.of.the.tlist.i
8f60 74 65 6d 73 00 20 2a 20 42 65 63 61 75 73 65 20 77 65 20 75 73 65 20 65 78 70 72 65 73 73 69 6f tems..*.Because.we.use.expressio
8f80 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 29 2c 20 74 68 69 73 20 63 61 6e 20 61 6c 73 6f 20 62 n_tree_walker(),.this.can.also.b
8fa0 65 20 61 70 70 6c 69 65 64 20 74 6f 00 20 2a 00 20 2a 09 20 20 54 65 73 74 20 77 68 65 74 68 65 e.applied.to..*..*...Test.whethe
8fc0 72 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 72 65 74 75 72 6e 73 20 61 20 73 65 74 20 72 65 r.an.expression.returns.a.set.re
8fe0 73 75 6c 74 2e 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 72 65 74 75 72 6e 73 5f 73 65 74 00 sult...*.expression_returns_set.
9000 61 64 00 00 07 00 00 00 0b 02 00 00 00 10 00 00 7a 00 00 00 00 00 00 00 c0 0f 00 00 8b 0f 00 00 ad..............z...............
9020 73 0f 00 00 72 0f 00 00 4b 0f 00 00 06 0f 00 00 cd 0e 00 00 a8 0e 00 00 8b 0e 00 00 5b 0e 00 00 s...r...K...................[...
9040 1c 0e 00 00 16 0e 00 00 0d 0e 00 00 07 0e 00 00 d5 0d 00 00 bd 0d 00 00 b7 0d 00 00 b2 0d 00 00 ................................
9060 a8 0d 00 00 96 0d 00 00 91 0d 00 00 5c 0d 00 00 5b 0d 00 00 2b 0d 00 00 ff 0c 00 00 f9 0c 00 00 ............\...[...+...........
9080 b9 0c 00 00 91 0c 00 00 52 0c 00 00 4c 0c 00 00 43 0c 00 00 3d 0c 00 00 0b 0c 00 00 f3 0b 00 00 ........R...L...C...=...........
90a0 ed 0b 00 00 e8 0b 00 00 de 0b 00 00 c1 0b 00 00 bc 0b 00 00 72 0b 00 00 71 0b 00 00 3d 0b 00 00 ....................r...q...=...
90c0 fe 0a 00 00 f9 0a 00 00 ef 0a 00 00 d9 0a 00 00 a3 0a 00 00 99 0a 00 00 84 0a 00 00 4d 0a 00 00 ............................M...
90e0 43 0a 00 00 2d 0a 00 00 f7 09 00 00 ed 09 00 00 d7 09 00 00 a1 09 00 00 97 09 00 00 7d 09 00 00 C...-.......................}...
9100 43 09 00 00 39 09 00 00 1c 09 00 00 e5 08 00 00 db 08 00 00 c5 08 00 00 94 08 00 00 8a 08 00 00 C...9...........................
9120 77 08 00 00 46 08 00 00 3c 08 00 00 25 08 00 00 f1 07 00 00 e7 07 00 00 d3 07 00 00 9f 07 00 00 w...F...<...%...................
9140 95 07 00 00 83 07 00 00 4c 07 00 00 42 07 00 00 29 07 00 00 f4 06 00 00 ea 06 00 00 d3 06 00 00 ........L...B...)...............
9160 9a 06 00 00 90 06 00 00 7b 06 00 00 46 06 00 00 3c 06 00 00 2a 06 00 00 29 06 00 00 23 06 00 00 ........{...F...<...*...)...#...
9180 e0 05 00 00 9a 05 00 00 75 05 00 00 6e 05 00 00 36 05 00 00 14 05 00 00 0c 05 00 00 f5 04 00 00 ........u...n...6...............
91a0 eb 04 00 00 d8 04 00 00 a3 04 00 00 99 04 00 00 83 04 00 00 4e 04 00 00 44 04 00 00 2b 04 00 00 ....................N...D...+...
91c0 f2 03 00 00 e8 03 00 00 ca 03 00 00 8f 03 00 00 85 03 00 00 6e 03 00 00 3a 03 00 00 30 03 00 00 ....................n...:...0...
91e0 18 03 00 00 e3 02 00 00 d9 02 00 00 c1 02 00 00 79 02 00 00 6f 02 00 00 56 02 00 00 0b 02 00 00 ................y...o...V.......
9200 0a 02 00 00 00 00 00 00 00 00 00 09 09 09 63 6f 6c 6c 20 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 ..............coll.=.exprCollati
9220 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 50 6c 61 63 65 48 6f 6c 64 65 72 56 on((Node.*).((const.PlaceHolderV
9240 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 70 68 65 78 70 72 29 3b 00 09 09 63 61 73 65 20 54 5f 50 ar.*).expr)->phexpr);...case.T_P
9260 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c laceHolderVar:....break;....coll
9280 20 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 .=.exprCollation((Node.*).((cons
92a0 74 20 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a 29 20 65 78 70 72 29 2d 3e 65 78 70 72 29 3b t.InferenceElem.*).expr)->expr);
92c0 00 09 09 63 61 73 65 20 54 5f 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 3a 00 09 09 09 62 72 65 61 ...case.T_InferenceElem:....brea
92e0 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 72 65 73 75 k;....coll.=.InvalidOid;./*.resu
9300 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 lt.is.always.boolean.*/...case.T
9320 5f 43 75 72 72 65 6e 74 4f 66 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c _CurrentOfExpr:....break;....col
9340 6c 20 3d 20 28 28 63 6f 6e 73 74 20 53 65 74 54 6f 44 65 66 61 75 6c 74 20 2a 29 20 65 78 70 72 l.=.((const.SetToDefault.*).expr
9360 29 2d 3e 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 53 65 74 54 6f 44 65 66 61 )->collation;...case.T_SetToDefa
9380 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 ult:....break;....coll.=.((const
93a0 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 20 2a 29 20 65 78 70 72 29 2d 3e 63 .CoerceToDomainValue.*).expr)->c
93c0 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 ollation;...case.T_CoerceToDomai
93e0 6e 56 61 6c 75 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f nValue:....break;....coll.=.((co
9400 6e 73 74 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 nst.CoerceToDomain.*).expr)->res
9420 75 6c 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 ultcollid;...case.T_CoerceToDoma
9440 69 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f in:....break;....coll.=.InvalidO
9460 69 64 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 id;./*.result.is.always.boolean.
9480 2a 2f 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 65 61 6e 54 65 73 74 3a 00 09 09 09 62 72 65 61 */...case.T_BooleanTest:....brea
94a0 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 72 65 73 75 k;....coll.=.InvalidOid;./*.resu
94c0 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 lt.is.always.boolean.*/...case.T
94e0 5f 4e 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 63 6f 6c 6c 20 3d 20 _NullTest:....break;.....coll.=.
9500 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 09 09 65 6c 73 65 00 09 09 09 09 63 6f 6c 6c 20 3d 20 44 InvalidOid;....else.....coll.=.D
9520 45 46 41 55 4c 54 5f 43 4f 4c 4c 41 54 49 4f 4e 5f 4f 49 44 3b 00 09 09 09 69 66 20 28 28 28 63 EFAULT_COLLATION_OID;....if.(((c
9540 6f 6e 73 74 20 58 6d 6c 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 20 3d 3d 20 49 53 5f onst.XmlExpr.*).expr)->op.==.IS_
9560 58 4d 4c 53 45 52 49 41 4c 49 5a 45 29 00 09 09 09 20 2a 2f 00 09 09 09 20 2a 20 58 4d 4c 2c 20 XMLSERIALIZE).....*/.....*.XML,.
9580 77 68 69 63 68 20 61 72 65 20 6e 6f 6e 2d 63 6f 6c 6c 61 74 61 62 6c 65 2e 00 09 09 09 20 2a 20 which.are.non-collatable......*.
95a0 63 6f 6c 6c 61 74 69 6f 6e 20 69 73 20 61 6c 77 61 79 73 20 64 65 66 61 75 6c 74 2e 20 20 54 68 collation.is.always.default...Th
95c0 65 20 6f 74 68 65 72 20 63 61 73 65 73 20 72 65 74 75 72 6e 20 62 6f 6f 6c 65 61 6e 20 6f 72 00 e.other.cases.return.boolean.or.
95e0 09 09 09 20 2a 20 58 4d 4c 53 45 52 49 41 4c 49 5a 45 20 72 65 74 75 72 6e 73 20 74 65 78 74 20 ....*.XMLSERIALIZE.returns.text.
9600 66 72 6f 6d 20 6e 6f 6e 2d 63 6f 6c 6c 61 74 61 62 6c 65 20 69 6e 70 75 74 73 2c 20 73 6f 20 69 from.non-collatable.inputs,.so.i
9620 74 73 00 09 09 09 2f 2a 00 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 62 ts..../*....case.T_XmlExpr:....b
9640 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 4d 69 6e 4d 61 78 45 78 reak;....coll.=.((const.MinMaxEx
9660 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6d 69 6e 6d 61 78 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 pr.*).expr)->minmaxcollid;...cas
9680 65 20 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c e.T_MinMaxExpr:....break;....col
96a0 6c 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 l.=.((const.CoalesceExpr.*).expr
96c0 29 2d 3e 63 6f 61 6c 65 73 63 65 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 61 6c )->coalescecollid;...case.T_Coal
96e0 65 73 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e esceExpr:....break;....coll.=.In
9700 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f validOid;./*.result.is.always.bo
9720 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 olean.*/...case.T_RowCompareExpr
9740 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 :....break;....coll.=.InvalidOid
9760 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70 6f 73 69 74 65 20 ;./*.result.is.always.composite.
9780 2a 2f 00 09 09 63 61 73 65 20 54 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 */...case.T_RowExpr:....break;..
97a0 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 45 78 70 72 20 2a 29 20 65 78 ..coll.=.((const.ArrayExpr.*).ex
97c0 70 72 29 2d 3e 61 72 72 61 79 5f 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 pr)->array_collid;...case.T_Arra
97e0 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e yExpr:....break;....coll.=.((con
9800 73 74 20 43 61 73 65 54 65 73 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 6c 6c 61 74 st.CaseTestExpr.*).expr)->collat
9820 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 54 65 73 74 45 78 70 72 3a 00 09 09 09 62 ion;...case.T_CaseTestExpr:....b
9840 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 43 61 73 65 45 78 70 72 reak;....coll.=.((const.CaseExpr
9860 20 2a 29 20 65 78 70 72 29 2d 3e 63 61 73 65 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f .*).expr)->casecollid;...case.T_
9880 43 61 73 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 CaseExpr:....break;....coll.=.((
98a0 63 6f 6e 73 74 20 43 6f 6c 6c 61 74 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 6c 6c const.CollateExpr.*).expr)->coll
98c0 4f 69 64 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 6c 61 74 65 45 78 70 72 3a 00 09 09 09 62 72 Oid;...case.T_CollateExpr:....br
98e0 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 72 65 eak;....coll.=.InvalidOid;./*.re
9900 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70 6f 73 69 74 65 20 2a 2f 00 09 09 63 61 sult.is.always.composite.*/...ca
9920 73 65 20 54 5f 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 se.T_ConvertRowtypeExpr:....brea
9940 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 k;....coll.=.((const.ArrayCoerce
9960 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c 6c 69 64 3b 00 09 09 63 Expr.*).expr)->resultcollid;...c
9980 61 73 65 20 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b ase.T_ArrayCoerceExpr:....break;
99a0 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 56 69 61 49 4f 20 2a ....coll.=.((const.CoerceViaIO.*
99c0 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f ).expr)->resultcollid;...case.T_
99e0 43 6f 65 72 63 65 56 69 61 49 4f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d CoerceViaIO:....break;....coll.=
9a00 20 28 28 63 6f 6e 73 74 20 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 65 78 70 72 29 2d 3e 72 .((const.RelabelType.*).expr)->r
9a20 65 73 75 6c 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c 54 79 70 esultcollid;...case.T_RelabelTyp
9a40 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 e:....break;....coll.=.InvalidOi
9a60 64 3b 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70 6f 73 69 74 65 d;./*.result.is.always.composite
9a80 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 74 6f 72 65 3a 00 09 09 09 62 72 65 61 .*/...case.T_FieldStore:....brea
9aa0 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 46 69 65 6c 64 53 65 6c 65 63 74 k;....coll.=.((const.FieldSelect
9ac0 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 .*).expr)->resultcollid;...case.
9ae0 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 T_FieldSelect:....break;....}...
9b00 09 09 63 6f 6c 6c 20 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 ..coll.=.exprCollation((Node.*).
9b20 6c 69 6e 69 74 69 61 6c 28 61 73 70 6c 61 6e 2d 3e 73 75 62 70 6c 61 6e 73 29 29 3b 00 09 09 09 linitial(asplan->subplans));....
9b40 09 2f 2a 20 73 75 62 70 6c 61 6e 73 20 73 68 6f 75 6c 64 20 61 6c 6c 20 72 65 74 75 72 6e 20 74 ./*.subplans.should.all.return.t
9b60 68 65 20 73 61 6d 65 20 74 68 69 6e 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 41 6c 74 65 he.same.thing.*/......const.Alte
9b80 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 61 73 70 6c 61 6e 20 3d 20 28 63 6f 6e 73 74 20 rnativeSubPlan.*asplan.=.(const.
9ba0 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b AlternativeSubPlan.*).expr;....{
9bc0 00 09 09 63 61 73 65 20 54 5f 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 3a 00 09 09 ...case.T_AlternativeSubPlan:...
9be0 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 7d 00 09 09 09 09 09 63 6f 6c 6c 20 3d 20 49 .break;....}.....}......coll.=.I
9c00 6e 76 61 6c 69 64 4f 69 64 3b 00 09 09 09 09 09 2f 2a 20 6f 74 68 65 72 77 69 73 65 2c 20 72 65 nvalidOid;....../*.otherwise,.re
9c20 73 75 6c 74 20 69 73 20 52 45 43 4f 52 44 20 6f 72 20 42 4f 4f 4c 45 41 4e 20 2a 2f 00 09 09 09 sult.is.RECORD.or.BOOLEAN.*/....
9c40 09 7b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 7d 00 09 09 09 09 09 2f 2a 20 63 6f 6c 6c 61 74 .{.....else.....}....../*.collat
9c60 69 6f 6e 20 64 6f 65 73 6e 27 74 20 63 68 61 6e 67 65 20 69 66 20 69 74 27 73 20 63 6f 6e 76 65 ion.doesn't.change.if.it's.conve
9c80 72 74 65 64 20 74 6f 20 61 72 72 61 79 20 2a 2f 00 09 09 09 09 09 63 6f 6c 6c 20 3d 20 73 75 62 rted.to.array.*/......coll.=.sub
9ca0 70 6c 61 6e 2d 3e 66 69 72 73 74 43 6f 6c 43 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 09 09 09 2f 2a plan->firstColCollation;....../*
9cc0 20 67 65 74 20 74 68 65 20 63 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 73 75 62 73 65 6c 65 63 74 27 .get.the.collation.of.subselect'
9ce0 73 20 66 69 72 73 74 20 74 61 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b 00 09 s.first.target.column.*/.....{..
9d00 09 09 09 09 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 ....subplan->subLinkType.==.ARRA
9d20 59 5f 53 55 42 4c 49 4e 4b 29 00 09 09 09 09 69 66 20 28 73 75 62 70 6c 61 6e 2d 3e 73 75 62 4c Y_SUBLINK).....if.(subplan->subL
9d40 69 6e 6b 54 79 70 65 20 3d 3d 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 09 09 inkType.==.EXPR_SUBLINK.||......
9d60 63 6f 6e 73 74 20 53 75 62 50 6c 61 6e 20 2a 73 75 62 70 6c 61 6e 20 3d 20 28 63 6f 6e 73 74 20 const.SubPlan.*subplan.=.(const.
9d80 53 75 62 50 6c 61 6e 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 SubPlan.*).expr;....{...case.T_S
9da0 75 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 7d 00 09 09 09 ubPlan:....break;....}.....}....
9dc0 09 09 63 6f 6c 6c 20 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 09 09 09 09 2f 2a 20 6f 74 68 ..coll.=.InvalidOid;....../*.oth
9de0 65 72 77 69 73 65 2c 20 72 65 73 75 6c 74 20 69 73 20 52 45 43 4f 52 44 20 6f 72 20 42 4f 4f 4c erwise,.result.is.RECORD.or.BOOL
9e00 45 41 4e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 7d 00 09 09 09 09 EAN.*/.....{.....else.....}.....
9e20 09 2f 2a 20 63 6f 6c 6c 61 74 69 6f 6e 20 64 6f 65 73 6e 27 74 20 63 68 61 6e 67 65 20 69 66 20 ./*.collation.doesn't.change.if.
9e40 69 74 27 73 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 72 72 61 79 20 2a 2f 00 09 09 09 09 09 it's.converted.to.array.*/......
9e60 63 6f 6c 6c 20 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 74 65 coll.=.exprCollation((Node.*).te
9e80 6e 74 2d 3e 65 78 70 72 29 3b 00 09 09 09 09 09 41 73 73 65 72 74 28 21 74 65 6e 74 2d 3e 72 65 nt->expr);......Assert(!tent->re
9ea0 73 6a 75 6e 6b 29 3b 00 09 09 09 09 09 41 73 73 65 72 74 28 49 73 41 28 74 65 6e 74 2c 20 54 61 sjunk);......Assert(IsA(tent,.Ta
9ec0 72 67 65 74 45 6e 74 72 79 29 29 3b 00 09 09 09 09 09 74 65 6e 74 20 3d 20 28 54 61 72 67 65 74 rgetEntry));......tent.=.(Target
9ee0 45 6e 74 72 79 20 2a 29 20 6c 69 6e 69 74 69 61 6c 28 71 74 72 65 65 2d 3e 74 61 72 67 65 74 4c Entry.*).linitial(qtree->targetL
9f00 69 73 74 29 3b 00 09 09 09 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 63 61 6e 6e 6f 74 20 ist);.......elog(ERROR,."cannot.
9f20 67 65 74 20 63 6f 6c 6c 61 74 69 6f 6e 20 66 6f 72 20 75 6e 74 72 61 6e 73 66 6f 72 6d 65 64 20 get.collation.for.untransformed.
9f40 73 75 62 6c 69 6e 6b 22 29 3b 00 09 09 09 09 09 69 66 20 28 21 71 74 72 65 65 20 7c 7c 20 21 49 sublink");......if.(!qtree.||.!I
9f60 73 41 28 71 74 72 65 65 2c 20 51 75 65 72 79 29 29 00 00 09 09 09 09 09 54 61 72 67 65 74 45 6e sA(qtree,.Query)).......TargetEn
9f80 74 72 79 20 2a 74 65 6e 74 3b 00 09 09 09 09 09 51 75 65 72 79 09 20 20 20 2a 71 74 72 65 65 20 try.*tent;......Query....*qtree.
9fa0 3d 20 28 51 75 65 72 79 20 2a 29 20 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 73 65 6c 65 63 74 3b 00 =.(Query.*).sublink->subselect;.
9fc0 09 09 09 09 09 2f 2a 20 67 65 74 20 74 68 65 20 63 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 73 75 62 ...../*.get.the.collation.of.sub
9fe0 73 65 6c 65 63 74 27 73 20 66 69 72 73 74 20 74 61 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 select's.first.target.column.*/.
a000 61 64 00 00 17 00 00 00 63 02 00 00 00 10 00 00 8c 00 00 00 00 00 00 00 f6 0f 00 00 eb 0f 00 00 ad......c.......................
a020 a8 0f 00 00 78 0f 00 00 6e 0f 00 00 6b 0f 00 00 5d 0f 00 00 5b 0f 00 00 5a 0f 00 00 57 0f 00 00 ....x...n...k...]...[...Z...W...
a040 3f 0f 00 00 f4 0e 00 00 f1 0e 00 00 a8 0e 00 00 a4 0e 00 00 a0 0e 00 00 7b 0e 00 00 79 0e 00 00 ?.......................{...y...
a060 6c 0e 00 00 6b 0e 00 00 5f 0e 00 00 4a 0e 00 00 49 0e 00 00 31 0e 00 00 2e 0e 00 00 1d 0e 00 00 l...k..._...J...I...1...........
a080 ed 0d 00 00 e3 0d 00 00 ce 0d 00 00 9a 0d 00 00 90 0d 00 00 7d 0d 00 00 4b 0d 00 00 41 0d 00 00 ....................}...K...A...
a0a0 30 0d 00 00 00 0d 00 00 f6 0c 00 00 df 0c 00 00 a9 0c 00 00 9f 0c 00 00 8a 0c 00 00 56 0c 00 00 0...........................V...
a0c0 4c 0c 00 00 30 0c 00 00 f5 0b 00 00 eb 0b 00 00 d6 0b 00 00 a2 0b 00 00 98 0b 00 00 8d 0b 00 00 L...0...........................
a0e0 77 0b 00 00 6d 0b 00 00 6a 0b 00 00 5c 0b 00 00 5a 0b 00 00 59 0b 00 00 56 0b 00 00 40 0b 00 00 w...m...j...\...Z...Y...V...@...
a100 02 0b 00 00 ff 0a 00 00 b6 0a 00 00 8a 0a 00 00 86 0a 00 00 81 0a 00 00 55 0a 00 00 53 0a 00 00 ........................U...S...
a120 3b 0a 00 00 38 0a 00 00 2a 0a 00 00 00 0a 00 00 f6 09 00 00 e6 09 00 00 b8 09 00 00 ae 09 00 00 ;...8...*.......................
a140 9e 09 00 00 70 09 00 00 66 09 00 00 55 09 00 00 28 09 00 00 1e 09 00 00 07 09 00 00 e4 08 00 00 ....p...f...U...(...............
a160 da 08 00 00 c5 08 00 00 94 08 00 00 8a 08 00 00 77 08 00 00 48 08 00 00 3e 08 00 00 2b 08 00 00 ................w...H...>...+...
a180 fb 07 00 00 f1 07 00 00 da 07 00 00 8c 07 00 00 82 07 00 00 71 07 00 00 45 07 00 00 3b 07 00 00 ....................q...E...;...
a1a0 24 07 00 00 f2 06 00 00 e8 06 00 00 d3 06 00 00 a3 06 00 00 99 06 00 00 7d 06 00 00 3a 06 00 00 $.......................}...:...
a1c0 30 06 00 00 1d 06 00 00 da 05 00 00 d0 05 00 00 be 05 00 00 a3 05 00 00 9e 05 00 00 72 05 00 00 0...........................r...
a1e0 71 05 00 00 41 05 00 00 15 05 00 00 0f 05 00 00 cf 04 00 00 9a 04 00 00 82 04 00 00 81 04 00 00 q...A...........................
a200 5a 04 00 00 15 04 00 00 dc 03 00 00 b7 03 00 00 9a 03 00 00 5c 03 00 00 56 03 00 00 4d 03 00 00 Z...................\...V...M...
a220 47 03 00 00 15 03 00 00 f0 02 00 00 ea 02 00 00 e5 02 00 00 c2 02 00 00 b8 02 00 00 a2 02 00 00 G...............................
a240 6d 02 00 00 63 02 00 00 62 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 m...c...b.......................
a260 00 00 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 46 69 65 6c 64 53 65 6c 65 63 74 20 2a 29 ......break;....((FieldSelect.*)
a280 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e .expr)->resultcollid.=.collation
a2a0 3b 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a 00 09 09 09 62 72 65 61 6b ;...case.T_FieldSelect:....break
a2c0 3b 00 23 65 6e 64 69 66 20 20 20 2f 2a 20 55 53 45 5f 41 53 53 45 52 54 5f 43 48 45 43 4b 49 4e ;.#endif.../*.USE_ASSERT_CHECKIN
a2e0 47 20 2a 2f 00 09 09 09 7d 00 09 09 09 09 7d 00 09 09 09 09 09 41 73 73 65 72 74 28 21 4f 69 64 G.*/....}.....}......Assert(!Oid
a300 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 00 09 09 09 09 09 2f 2a 20 6f 74 68 IsValid(collation));....../*.oth
a320 65 72 77 69 73 65 2c 20 72 65 73 75 6c 74 20 69 73 20 52 45 43 4f 52 44 20 6f 72 20 42 4f 4f 4c erwise,.result.is.RECORD.or.BOOL
a340 45 41 4e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 65 6c 73 65 00 09 09 09 09 7d 00 09 09 09 09 EAN.*/.....{.....else.....}.....
a360 09 41 73 73 65 72 74 28 63 6f 6c 6c 61 74 69 6f 6e 20 3d 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 .Assert(collation.==.exprCollati
a380 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 74 65 6e 74 2d 3e 65 78 70 72 29 29 3b 00 09 09 09 09 09 41 on((Node.*).tent->expr));......A
a3a0 73 73 65 72 74 28 21 74 65 6e 74 2d 3e 72 65 73 6a 75 6e 6b 29 3b 00 09 09 09 09 09 41 73 73 65 ssert(!tent->resjunk);......Asse
a3c0 72 74 28 49 73 41 28 74 65 6e 74 2c 20 54 61 72 67 65 74 45 6e 74 72 79 29 29 3b 00 09 09 09 09 rt(IsA(tent,.TargetEntry));.....
a3e0 09 74 65 6e 74 20 3d 20 28 54 61 72 67 65 74 45 6e 74 72 79 20 2a 29 20 6c 69 6e 69 74 69 61 6c .tent.=.(TargetEntry.*).linitial
a400 28 71 74 72 65 65 2d 3e 74 61 72 67 65 74 4c 69 73 74 29 3b 00 09 09 09 09 09 09 65 6c 6f 67 28 (qtree->targetList);.......elog(
a420 45 52 52 4f 52 2c 20 22 63 61 6e 6e 6f 74 20 73 65 74 20 63 6f 6c 6c 61 74 69 6f 6e 20 66 6f 72 ERROR,."cannot.set.collation.for
a440 20 75 6e 74 72 61 6e 73 66 6f 72 6d 65 64 20 73 75 62 6c 69 6e 6b 22 29 3b 00 09 09 09 09 09 69 .untransformed.sublink");......i
a460 66 20 28 21 71 74 72 65 65 20 7c 7c 20 21 49 73 41 28 71 74 72 65 65 2c 20 51 75 65 72 79 29 29 f.(!qtree.||.!IsA(qtree,.Query))
a480 00 00 09 09 09 09 09 54 61 72 67 65 74 45 6e 74 72 79 20 2a 74 65 6e 74 3b 00 09 09 09 09 09 51 .......TargetEntry.*tent;......Q
a4a0 75 65 72 79 09 20 20 20 2a 71 74 72 65 65 20 3d 20 28 51 75 65 72 79 20 2a 29 20 73 75 62 6c 69 uery....*qtree.=.(Query.*).subli
a4c0 6e 6b 2d 3e 73 75 62 73 65 6c 65 63 74 3b 00 09 09 09 09 09 2f 2a 20 67 65 74 20 74 68 65 20 63 nk->subselect;....../*.get.the.c
a4e0 6f 6c 6c 61 74 69 6f 6e 20 6f 66 20 73 75 62 73 65 6c 65 63 74 27 73 20 66 69 72 73 74 20 74 61 ollation.of.subselect's.first.ta
a500 72 67 65 74 20 63 6f 6c 75 6d 6e 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 09 73 75 62 6c 69 6e rget.column.*/.....{......sublin
a520 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d 20 41 52 52 41 59 5f 53 55 42 4c 49 4e 4b 29 k->subLinkType.==.ARRAY_SUBLINK)
a540 00 09 09 09 09 69 66 20 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 4c 69 6e 6b 54 79 70 65 20 3d 3d .....if.(sublink->subLinkType.==
a560 20 45 58 50 52 5f 53 55 42 4c 49 4e 4b 20 7c 7c 00 00 09 09 09 09 53 75 62 4c 69 6e 6b 20 20 20 .EXPR_SUBLINK.||......SubLink...
a580 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 28 53 75 62 4c 69 6e 6b 20 2a 29 20 65 78 70 72 3b 00 09 09 .*sublink.=.(SubLink.*).expr;...
a5a0 09 7b 00 23 69 66 64 65 66 20 55 53 45 5f 41 53 53 45 52 54 5f 43 48 45 43 4b 49 4e 47 00 09 09 .{.#ifdef.USE_ASSERT_CHECKING...
a5c0 63 61 73 65 20 54 5f 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 case.T_SubLink:....break;....Ass
a5e0 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a ert(!OidIsValid(collation));../*
a600 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 .result.is.always.boolean.*/...c
a620 61 73 65 20 54 5f 42 6f 6f 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 ase.T_BoolExpr:....break;....Ass
a640 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a ert(!OidIsValid(collation));../*
a660 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 .result.is.always.boolean.*/...c
a680 61 73 65 20 54 5f 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 ase.T_ScalarArrayOpExpr:....brea
a6a0 6b 3b 00 09 09 09 28 28 4e 75 6c 6c 49 66 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 63 k;....((NullIfExpr.*).expr)->opc
a6c0 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c ollid.=.collation;...case.T_Null
a6e0 49 66 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 44 69 73 74 69 6e 63 74 45 IfExpr:....break;....((DistinctE
a700 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 xpr.*).expr)->opcollid.=.collati
a720 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 00 09 09 09 62 72 on;...case.T_DistinctExpr:....br
a740 65 61 6b 3b 00 09 09 09 28 28 4f 70 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 63 6f 6c eak;....((OpExpr.*).expr)->opcol
a760 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4f 70 45 78 70 72 lid.=.collation;...case.T_OpExpr
a780 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 63 6f 6c 6c 61 74 69 6f 6e 20 :....break;....Assert(collation.
a7a0 3d 3d 20 65 78 70 72 43 6f 6c 6c 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 4e 61 6d 65 ==.exprCollation((Node.*).((Name
a7c0 64 41 72 67 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 29 3b 00 09 09 63 61 73 65 dArgExpr.*).expr)->arg));...case
a7e0 20 54 5f 4e 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 .T_NamedArgExpr:....break;....((
a800 46 75 6e 63 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 66 75 6e 63 63 6f 6c 6c 69 64 20 3d 20 FuncExpr.*).expr)->funccollid.=.
a820 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 collation;...case.T_FuncExpr:...
a840 09 62 72 65 61 6b 3b 00 09 09 09 28 28 41 72 72 61 79 52 65 66 20 2a 29 20 65 78 70 72 29 2d 3e .break;....((ArrayRef.*).expr)->
a860 72 65 66 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f refcollid.=.collation;...case.T_
a880 41 72 72 61 79 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 57 69 6e 64 6f 77 46 ArrayRef:....break;....((WindowF
a8a0 75 6e 63 20 2a 29 20 65 78 70 72 29 2d 3e 77 69 6e 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 unc.*).expr)->wincollid.=.collat
a8c0 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 72 65 ion;...case.T_WindowFunc:....bre
a8e0 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 ak;....Assert(!OidIsValid(collat
a900 69 6f 6e 29 29 3b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 46 75 6e 63 3a 00 09 09 ion));...case.T_GroupingFunc:...
a920 09 62 72 65 61 6b 3b 00 09 09 09 28 28 41 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 61 67 .break;....((Aggref.*).expr)->ag
a940 67 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 41 67 gcollid.=.collation;...case.T_Ag
a960 67 72 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 50 61 72 61 6d 20 2a 29 20 65 78 gref:....break;....((Param.*).ex
a980 70 72 29 2d 3e 70 61 72 61 6d 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 pr)->paramcollid.=.collation;...
a9a0 63 61 73 65 20 54 5f 50 61 72 61 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 43 6f 6e case.T_Param:....break;....((Con
a9c0 73 74 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 6e 73 74 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 st.*).expr)->constcollid.=.colla
a9e0 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 tion;...case.T_Const:....break;.
aa00 09 09 09 28 28 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 76 61 72 63 6f 6c 6c 69 64 20 3d 20 63 ...((Var.*).expr)->varcollid.=.c
aa20 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 56 61 72 3a 00 09 7b 00 09 73 77 69 74 ollation;...case.T_Var:..{..swit
aa40 63 68 20 28 6e 6f 64 65 54 61 67 28 65 78 70 72 29 29 00 7b 00 65 78 70 72 53 65 74 43 6f 6c 6c ch.(nodeTag(expr)).{.exprSetColl
aa60 61 74 69 6f 6e 28 4e 6f 64 65 20 2a 65 78 70 72 2c 20 4f 69 64 20 63 6f 6c 6c 61 74 69 6f 6e 29 ation(Node.*expr,.Oid.collation)
aa80 00 76 6f 69 64 00 20 2a 2f 00 20 2a 20 77 6f 72 72 79 20 61 62 6f 75 74 20 73 75 62 70 6c 61 6e .void..*/..*.worry.about.subplan
aaa0 73 20 6f 72 20 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 73 2e 00 20 2a 20 4e 6f 74 65 3a 20 73 s.or.PlaceHolderVars...*.Note:.s
aac0 69 6e 63 65 20 74 68 69 73 20 69 73 20 6f 6e 6c 79 20 75 73 65 64 20 64 75 72 69 6e 67 20 70 61 ince.this.is.only.used.during.pa
aae0 72 73 65 20 61 6e 61 6c 79 73 69 73 2c 20 77 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 6f 00 20 rse.analysis,.we.don't.need.to..
ab00 2a 00 20 2a 09 20 20 41 73 73 69 67 6e 20 63 6f 6c 6c 61 74 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 *..*...Assign.collation.informat
ab20 69 6f 6e 20 74 6f 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 65 65 20 6e 6f 64 65 2e 00 ion.to.an.expression.tree.node..
ab40 20 2a 09 65 78 70 72 53 65 74 43 6f 6c 6c 61 74 69 6f 6e 20 2d 00 2f 2a 00 00 7d 00 09 72 65 74 .*.exprSetCollation.-./*..}..ret
ab60 75 72 6e 20 63 6f 6c 6c 3b 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d urn.coll;..}....break;....coll.=
ab80 20 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b .InvalidOid;...default:....break
aba0 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 4d 69 6e 4d 61 78 45 78 70 72 20 2a ;....coll.=.((const.MinMaxExpr.*
abc0 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 4d ).expr)->inputcollid;...case.T_M
abe0 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 inMaxExpr:....break;....coll.=.(
ac00 28 63 6f 6e 73 74 20 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 20 2a 29 20 65 78 70 72 (const.ScalarArrayOpExpr.*).expr
ac20 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 53 63 61 6c 61 72 41 )->inputcollid;...case.T_ScalarA
ac40 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 rrayOpExpr:....break;....coll.=.
ac60 28 28 63 6f 6e 73 74 20 4e 75 6c 6c 49 66 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 ((const.NullIfExpr.*).expr)->inp
ac80 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 00 09 utcollid;...case.T_NullIfExpr:..
aca0 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 44 69 73 74 69 ..break;....coll.=.((const.Disti
acc0 6e 63 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 nctExpr.*).expr)->inputcollid;..
ace0 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 .case.T_DistinctExpr:....break;.
ad00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 4f 70 45 78 70 72 20 2a 29 20 65 78 70 72 ...coll.=.((const.OpExpr.*).expr
ad20 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 4f 70 45 78 70 72 3a )->inputcollid;...case.T_OpExpr:
ad40 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 46 75 6e ....break;....coll.=.((const.Fun
ad60 63 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 cExpr.*).expr)->inputcollid;...c
ad80 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c ase.T_FuncExpr:....break;....col
ada0 6c 20 3d 20 28 28 63 6f 6e 73 74 20 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 65 78 70 72 29 2d l.=.((const.WindowFunc.*).expr)-
adc0 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e >inputcollid;...case.T_WindowFun
ade0 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 3d 20 28 28 63 6f 6e 73 74 20 41 c:....break;....coll.=.((const.A
ae00 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 3b 00 09 09 63 ggref.*).expr)->inputcollid;...c
ae20 61 73 65 20 54 5f 41 67 67 72 65 66 3a 00 09 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 65 54 61 ase.T_Aggref:..{..switch.(nodeTa
ae40 67 28 65 78 70 72 29 29 00 00 09 09 72 65 74 75 72 6e 20 49 6e 76 61 6c 69 64 4f 69 64 3b 00 09 g(expr))....return.InvalidOid;..
ae60 69 66 20 28 21 65 78 70 72 29 00 00 09 4f 69 64 09 09 09 63 6f 6c 6c 3b 00 7b 00 65 78 70 72 49 if.(!expr)...Oid...coll;.{.exprI
ae80 6e 70 75 74 43 6f 6c 6c 61 74 69 6f 6e 28 63 6f 6e 73 74 20 4e 6f 64 65 20 2a 65 78 70 72 29 00 nputCollation(const.Node.*expr).
aea0 4f 69 64 00 20 2a 2f 00 20 2a 20 52 65 73 75 6c 74 20 69 73 20 49 6e 76 61 6c 69 64 4f 69 64 20 Oid..*/..*.Result.is.InvalidOid.
aec0 69 66 20 74 68 65 20 6e 6f 64 65 20 74 79 70 65 20 64 6f 65 73 6e 27 74 20 73 74 6f 72 65 20 74 if.the.node.type.doesn't.store.t
aee0 68 69 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 00 20 2a 00 20 2a 09 20 20 72 65 74 75 72 6e 73 his.information...*..*...returns
af00 20 74 68 65 20 4f 69 64 20 6f 66 20 74 68 65 20 63 6f 6c 6c 61 74 69 6f 6e 20 61 20 66 75 6e 63 .the.Oid.of.the.collation.a.func
af20 74 69 6f 6e 20 73 68 6f 75 6c 64 20 75 73 65 2c 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2e 00 20 tion.should.use,.if.available...
af40 2a 09 65 78 70 72 49 6e 70 75 74 43 6f 6c 6c 61 74 69 6f 6e 20 2d 00 2f 2a 00 00 7d 00 09 72 65 *.exprInputCollation.-./*..}..re
af60 74 75 72 6e 20 63 6f 6c 6c 3b 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 63 6f 6c 6c 20 turn.coll;..}....break;....coll.
af80 3d 20 49 6e 76 61 6c 69 64 4f 69 64 3b 09 2f 2a 20 6b 65 65 70 20 63 6f 6d 70 69 6c 65 72 20 71 =.InvalidOid;./*.keep.compiler.q
afa0 75 69 65 74 20 2a 2f 00 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 75 6e 72 65 63 6f 67 6e uiet.*/....elog(ERROR,."unrecogn
afc0 69 7a 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 64 22 2c 20 28 69 6e 74 29 20 6e 6f 64 65 54 ized.node.type:.%d",.(int).nodeT
afe0 61 67 28 65 78 70 72 29 29 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 ag(expr));...default:....break;.
b000 61 64 00 00 4a 00 00 00 3a 02 00 00 00 10 00 00 75 00 00 00 00 00 00 00 eb 0f 00 00 a6 0f 00 00 ad..J...:.......u...............
b020 9c 0f 00 00 86 0f 00 00 51 0f 00 00 47 0f 00 00 31 0f 00 00 fc 0e 00 00 f2 0e 00 00 d8 0e 00 00 ........Q...G...1...............
b040 9f 0e 00 00 95 0e 00 00 78 0e 00 00 33 0e 00 00 29 0e 00 00 16 0e 00 00 e6 0d 00 00 dc 0d 00 00 ........x...3...)...............
b060 c8 0d 00 00 95 0d 00 00 8b 0d 00 00 79 0d 00 00 34 0d 00 00 2a 0d 00 00 11 0d 00 00 ce 0c 00 00 ............y...4...*...........
b080 c4 0c 00 00 ad 0c 00 00 75 0c 00 00 6b 0c 00 00 56 0c 00 00 22 0c 00 00 18 0c 00 00 06 0c 00 00 ........u...k...V..."...........
b0a0 ce 0b 00 00 a0 0b 00 00 7d 0b 00 00 73 0b 00 00 60 0b 00 00 1d 0b 00 00 13 0b 00 00 fd 0a 00 00 ........}...s...`...............
b0c0 ba 0a 00 00 b0 0a 00 00 97 0a 00 00 5f 0a 00 00 55 0a 00 00 37 0a 00 00 fd 09 00 00 f3 09 00 00 ............_...U...7...........
b0e0 dc 09 00 00 a9 09 00 00 9f 09 00 00 87 09 00 00 44 09 00 00 3a 09 00 00 2f 09 00 00 ec 08 00 00 ................D...:.../.......
b100 e2 08 00 00 df 08 00 00 dd 08 00 00 dc 08 00 00 d9 08 00 00 be 08 00 00 7a 08 00 00 77 08 00 00 ........................z...w...
b120 2d 08 00 00 e6 07 00 00 bb 07 00 00 b7 07 00 00 b2 07 00 00 7c 07 00 00 7a 07 00 00 62 07 00 00 -...................|...z...b...
b140 5f 07 00 00 4e 07 00 00 1a 07 00 00 10 07 00 00 fb 06 00 00 c3 06 00 00 b9 06 00 00 a6 06 00 00 _...N...........................
b160 70 06 00 00 66 06 00 00 55 06 00 00 21 06 00 00 17 06 00 00 00 06 00 00 c6 05 00 00 bc 05 00 00 p...f...U...!...................
b180 a7 05 00 00 6f 05 00 00 65 05 00 00 49 05 00 00 0a 05 00 00 00 05 00 00 eb 04 00 00 b3 04 00 00 ....o...e...I...................
b1a0 a9 04 00 00 9e 04 00 00 94 04 00 00 91 04 00 00 8f 04 00 00 8e 04 00 00 8d 04 00 00 8a 04 00 00 ................................
b1c0 78 04 00 00 2f 04 00 00 2c 04 00 00 f5 03 00 00 f2 03 00 00 ad 03 00 00 62 03 00 00 19 03 00 00 x.../...,...............b.......
b1e0 cc 02 00 00 84 02 00 00 3a 02 00 00 39 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........:...9...................
b200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 2a 20 54 68 65 ...........................*.The
b240 20 72 65 61 73 6f 6e 20 69 73 20 74 68 61 74 20 77 65 20 77 61 6e 74 20 74 6f 20 72 65 66 65 72 .reason.is.that.we.want.to.refer
b260 65 6e 63 65 20 74 68 65 20 65 6e 74 69 72 65 20 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 74 20 6a ence.the.entire.expression.not.j
b280 75 73 74 00 20 2a 20 74 68 65 6e 20 77 65 20 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 74 68 65 ust..*.then.we.should.return.the
b2a0 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 65 66 74 2d 68 61 6e 64 20 6f 70 65 72 61 .location.of.the.left-hand.opera
b2c0 6e 64 20 69 6e 73 74 65 61 64 2e 00 20 2a 20 66 69 65 6c 64 20 77 69 6c 6c 20 70 6f 69 6e 74 20 nd.instead...*.field.will.point.
b2e0 61 74 20 74 68 65 20 6f 70 65 72 61 74 6f 72 20 6e 61 6d 65 2c 20 62 75 74 20 69 66 20 69 74 20 at.the.operator.name,.but.if.it.
b300 69 73 20 6e 6f 74 20 61 20 70 72 65 66 69 78 20 6f 70 65 72 61 74 6f 72 00 20 2a 20 74 68 65 20 is.not.a.prefix.operator..*.the.
b320 74 6f 70 6d 6f 73 74 20 4e 6f 64 65 27 73 20 6c 6f 63 61 74 69 6f 6e 20 66 69 65 6c 64 2e 20 20 topmost.Node's.location.field...
b340 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 61 6e 20 4f 70 45 78 70 72 27 73 20 6c 6f 63 61 74 69 6f For.example,.an.OpExpr's.locatio
b360 6e 00 20 2a 20 72 65 74 75 72 6e 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 n..*.return.the.location.of.the.
b380 65 78 70 72 65 73 73 69 6f 6e 27 73 20 6c 65 66 74 6d 6f 73 74 20 74 6f 6b 65 6e 2c 20 6e 6f 74 expression's.leftmost.token,.not
b3a0 20 6e 65 63 65 73 73 61 72 69 6c 79 00 20 2a 20 46 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 73 20 .necessarily..*.For.expressions.
b3c0 6c 61 72 67 65 72 20 74 68 61 6e 20 61 20 73 69 6e 67 6c 65 20 74 6f 6b 65 6e 2c 20 74 68 65 20 larger.than.a.single.token,.the.
b3e0 69 6e 74 65 6e 74 20 68 65 72 65 20 69 73 20 74 6f 00 20 2a 00 20 2a 20 2d 31 20 69 73 20 72 65 intent.here.is.to..*..*.-1.is.re
b400 74 75 72 6e 65 64 20 69 66 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 63 61 6e 27 74 20 62 65 20 turned.if.the.location.can't.be.
b420 64 65 74 65 72 6d 69 6e 65 64 2e 00 20 2a 00 20 2a 09 20 20 72 65 74 75 72 6e 73 20 74 68 65 20 determined...*..*...returns.the.
b440 70 61 72 73 65 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 parse.location.of.an.expression.
b460 74 72 65 65 2c 20 66 6f 72 20 65 72 72 6f 72 20 72 65 70 6f 72 74 73 00 20 2a 09 65 78 70 72 4c tree,.for.error.reports..*.exprL
b480 6f 63 61 74 69 6f 6e 20 2d 00 2f 2a 00 00 00 7d 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ocation.-./*...}..}....break;...
b4a0 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 4d 69 6e 4d 61 78 45 78 default:....break;....((MinMaxEx
b4c0 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 pr.*).expr)->inputcollid.=.input
b4e0 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 collation;...case.T_MinMaxExpr:.
b500 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 ...break;....((ScalarArrayOpExpr
b520 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 63 6f .*).expr)->inputcollid.=.inputco
b540 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 llation;...case.T_ScalarArrayOpE
b560 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 4e 75 6c 6c 49 66 45 78 70 72 20 2a xpr:....break;....((NullIfExpr.*
b580 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 63 6f 6c 6c ).expr)->inputcollid.=.inputcoll
b5a0 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 00 09 09 09 62 ation;...case.T_NullIfExpr:....b
b5c0 72 65 61 6b 3b 00 09 09 09 28 28 44 69 73 74 69 6e 63 74 45 78 70 72 20 2a 29 20 65 78 70 72 29 reak;....((DistinctExpr.*).expr)
b5e0 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 63 6f 6c 6c 61 74 69 6f 6e 3b 00 ->inputcollid.=.inputcollation;.
b600 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b ..case.T_DistinctExpr:....break;
b620 00 09 09 09 28 28 4f 70 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c ....((OpExpr.*).expr)->inputcoll
b640 69 64 20 3d 20 69 6e 70 75 74 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4f 70 id.=.inputcollation;...case.T_Op
b660 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 46 75 6e 63 45 78 70 72 20 2a 29 Expr:....break;....((FuncExpr.*)
b680 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 63 6f 6c 6c 61 .expr)->inputcollid.=.inputcolla
b6a0 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 09 62 72 65 61 tion;...case.T_FuncExpr:....brea
b6c0 6b 3b 00 09 09 09 28 28 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 k;....((WindowFunc.*).expr)->inp
b6e0 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e 70 75 74 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 utcollid.=.inputcollation;...cas
b700 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 41 e.T_WindowFunc:....break;....((A
b720 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 69 6e 70 75 74 63 6f 6c 6c 69 64 20 3d 20 69 6e ggref.*).expr)->inputcollid.=.in
b740 70 75 74 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 41 67 67 72 65 66 3a 00 09 putcollation;...case.T_Aggref:..
b760 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 65 54 61 67 28 65 78 70 72 29 29 00 7b 00 65 78 70 72 {..switch.(nodeTag(expr)).{.expr
b780 53 65 74 49 6e 70 75 74 43 6f 6c 6c 61 74 69 6f 6e 28 4e 6f 64 65 20 2a 65 78 70 72 2c 20 4f 69 SetInputCollation(Node.*expr,.Oi
b7a0 64 20 69 6e 70 75 74 63 6f 6c 6c 61 74 69 6f 6e 29 00 76 6f 69 64 00 20 2a 2f 00 20 2a 20 63 6f d.inputcollation).void..*/..*.co
b7c0 6e 74 61 69 6e 73 20 6d 75 6c 74 69 70 6c 65 20 69 6e 70 75 74 20 63 6f 6c 6c 61 74 69 6f 6e 20 ntains.multiple.input.collation.
b7e0 4f 49 44 73 2e 00 20 2a 20 4e 6f 74 65 20 77 65 20 6f 6d 69 74 20 52 6f 77 43 6f 6d 70 61 72 65 OIDs...*.Note.we.omit.RowCompare
b800 45 78 70 72 2c 20 77 68 69 63 68 20 6e 65 65 64 73 20 73 70 65 63 69 61 6c 20 74 72 65 61 74 6d Expr,.which.needs.special.treatm
b820 65 6e 74 20 73 69 6e 63 65 20 69 74 00 20 2a 20 54 68 69 73 20 69 73 20 61 20 6e 6f 2d 6f 70 20 ent.since.it..*.This.is.a.no-op.
b840 66 6f 72 20 6e 6f 64 65 20 74 79 70 65 73 20 74 68 61 74 20 64 6f 6e 27 74 20 73 74 6f 72 65 20 for.node.types.that.don't.store.
b860 74 68 65 69 72 20 69 6e 70 75 74 20 63 6f 6c 6c 61 74 69 6f 6e 2e 00 20 2a 00 20 2a 09 20 20 41 their.input.collation...*..*...A
b880 73 73 69 67 6e 20 69 6e 70 75 74 2d 63 6f 6c 6c 61 74 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f ssign.input-collation.informatio
b8a0 6e 20 74 6f 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 65 65 20 6e 6f 64 65 2e 00 20 2a n.to.an.expression.tree.node...*
b8c0 09 65 78 70 72 53 65 74 49 6e 70 75 74 43 6f 6c 6c 61 74 69 6f 6e 20 2d 00 2f 2a 00 00 7d 00 09 .exprSetInputCollation.-./*..}..
b8e0 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 75 6e 72 65 }....break;....elog(ERROR,."unre
b900 63 6f 67 6e 69 7a 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 64 22 2c 20 28 69 6e 74 29 20 6e cognized.node.type:.%d",.(int).n
b920 6f 64 65 54 61 67 28 65 78 70 72 29 29 3b 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 odeTag(expr));...default:....bre
b940 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 ak;....Assert(!OidIsValid(collat
b960 69 6f 6e 29 29 3b 09 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c ion));../*.result.is.always.bool
b980 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 43 75 72 72 65 6e 74 4f 66 45 78 70 72 3a 00 09 ean.*/...case.T_CurrentOfExpr:..
b9a0 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 53 65 74 54 6f 44 65 66 61 75 6c 74 20 2a 29 20 65 78 ..break;....((SetToDefault.*).ex
b9c0 70 72 29 2d 3e 63 6f 6c 6c 61 74 69 6f 6e 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 pr)->collation.=.collation;...ca
b9e0 73 65 20 54 5f 53 65 74 54 6f 44 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 se.T_SetToDefault:....break;....
ba00 28 28 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 20 2a 29 20 65 78 70 72 29 2d 3e ((CoerceToDomainValue.*).expr)->
ba20 63 6f 6c 6c 61 74 69 6f 6e 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f collation.=.collation;...case.T_
ba40 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 CoerceToDomainValue:....break;..
ba60 09 09 28 28 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 ..((CoerceToDomain.*).expr)->res
ba80 75 6c 74 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f ultcollid.=.collation;...case.T_
baa0 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 CoerceToDomain:....break;....Ass
bac0 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a ert(!OidIsValid(collation));../*
bae0 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 .result.is.always.boolean.*/...c
bb00 61 73 65 20 54 5f 42 6f 6f 6c 65 61 6e 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ase.T_BooleanTest:....break;....
bb20 41 73 73 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 Assert(!OidIsValid(collation));.
bb40 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 ./*.result.is.always.boolean.*/.
bb60 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ..case.T_NullTest:....break;....
bb80 09 20 20 20 28 63 6f 6c 6c 61 74 69 6f 6e 20 3d 3d 20 49 6e 76 61 6c 69 64 4f 69 64 29 29 3b 00 ....(collation.==.InvalidOid));.
bba0 09 09 09 09 20 20 20 28 63 6f 6c 6c 61 74 69 6f 6e 20 3d 3d 20 44 45 46 41 55 4c 54 5f 43 4f 4c .......(collation.==.DEFAULT_COL
bbc0 4c 41 54 49 4f 4e 5f 4f 49 44 29 20 3a 00 09 09 09 41 73 73 65 72 74 28 28 28 28 58 6d 6c 45 78 LATION_OID).:....Assert((((XmlEx
bbe0 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6f 70 20 3d 3d 20 49 53 5f 58 4d 4c 53 45 52 49 41 4c 49 pr.*).expr)->op.==.IS_XMLSERIALI
bc00 5a 45 29 20 3f 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b ZE).?...case.T_XmlExpr:....break
bc20 3b 00 09 09 09 28 28 4d 69 6e 4d 61 78 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6d 69 6e 6d ;....((MinMaxExpr.*).expr)->minm
bc40 61 78 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4d axcollid.=.collation;...case.T_M
bc60 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 43 6f 61 6c 65 73 inMaxExpr:....break;....((Coales
bc80 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 6f 61 6c 65 73 63 65 63 6f 6c 6c 69 64 20 ceExpr.*).expr)->coalescecollid.
bca0 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 =.collation;...case.T_CoalesceEx
bcc0 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f 69 64 49 73 56 61 pr:....break;....Assert(!OidIsVa
bce0 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 lid(collation));../*.result.is.a
bd00 6c 77 61 79 73 20 62 6f 6f 6c 65 61 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 52 6f 77 43 6f 6d lways.boolean.*/...case.T_RowCom
bd20 70 61 72 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f pareExpr:....break;....Assert(!O
bd40 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a 20 72 65 73 75 6c idIsValid(collation));../*.resul
bd60 74 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70 6f 73 69 74 65 20 2a 2f 00 09 09 63 61 73 65 20 t.is.always.composite.*/...case.
bd80 54 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 41 72 72 61 79 45 T_RowExpr:....break;....((ArrayE
bda0 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 72 61 79 5f 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c xpr.*).expr)->array_collid.=.col
bdc0 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 lation;...case.T_ArrayExpr:....b
bde0 72 65 61 6b 3b 00 09 09 09 28 28 43 61 73 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 63 61 reak;....((CaseExpr.*).expr)->ca
be00 73 65 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 secollid.=.collation;...case.T_C
be20 61 73 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f 69 aseExpr:....break;....Assert(!Oi
be40 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c 61 74 69 6f 6e 29 29 3b 09 09 2f 2a 20 72 65 73 75 6c 74 dIsValid(collation));../*.result
be60 20 69 73 20 61 6c 77 61 79 73 20 63 6f 6d 70 6f 73 69 74 65 20 2a 2f 00 09 09 63 61 73 65 20 54 .is.always.composite.*/...case.T
be80 5f 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 _ConvertRowtypeExpr:....break;..
bea0 09 09 28 28 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 ..((ArrayCoerceExpr.*).expr)->re
bec0 73 75 6c 74 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 sultcollid.=.collation;...case.T
bee0 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 _ArrayCoerceExpr:....break;....(
bf00 28 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c (CoerceViaIO.*).expr)->resultcol
bf20 6c 69 64 20 3d 20 63 6f 6c 6c 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 lid.=.collation;...case.T_Coerce
bf40 56 69 61 49 4f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 28 28 52 65 6c 61 62 65 6c 54 79 70 ViaIO:....break;....((RelabelTyp
bf60 65 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 73 75 6c 74 63 6f 6c 6c 69 64 20 3d 20 63 6f 6c 6c 61 e.*).expr)->resultcollid.=.colla
bf80 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c 54 79 70 65 3a 00 09 09 09 62 tion;...case.T_RelabelType:....b
bfa0 72 65 61 6b 3b 00 09 09 09 41 73 73 65 72 74 28 21 4f 69 64 49 73 56 61 6c 69 64 28 63 6f 6c 6c reak;....Assert(!OidIsValid(coll
bfc0 61 74 69 6f 6e 29 29 3b 09 09 2f 2a 20 72 65 73 75 6c 74 20 69 73 20 61 6c 77 61 79 73 20 63 6f ation));../*.result.is.always.co
bfe0 6d 70 6f 73 69 74 65 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 74 6f 72 65 3a 00 mposite.*/...case.T_FieldStore:.
c000 61 64 00 00 1b 00 00 00 ff 01 00 00 00 10 00 00 72 00 00 00 00 00 00 00 b2 0f 00 00 af 0f 00 00 ad..............r...............
c020 65 0f 00 00 1a 0f 00 00 d2 0e 00 00 8d 0e 00 00 8a 0e 00 00 3e 0e 00 00 f3 0d 00 00 a8 0d 00 00 e...................>...........
c040 61 0d 00 00 15 0d 00 00 c9 0c 00 00 80 0c 00 00 34 0c 00 00 0a 0c 00 00 06 0c 00 00 02 0c 00 00 a...............4...............
c060 e3 0b 00 00 e1 0b 00 00 d5 0b 00 00 d4 0b 00 00 c1 0b 00 00 b4 0b 00 00 9c 0b 00 00 99 0b 00 00 ................................
c080 86 0b 00 00 58 0b 00 00 4e 0b 00 00 40 0b 00 00 17 0b 00 00 0d 0b 00 00 fd 0a 00 00 d2 0a 00 00 ....X...N...@...................
c0a0 c8 0a 00 00 b8 0a 00 00 8d 0a 00 00 83 0a 00 00 72 0a 00 00 3a 0a 00 00 0e 0a 00 00 04 0a 00 00 ................r...:...........
c0c0 ed 09 00 00 bb 09 00 00 b1 09 00 00 9c 09 00 00 64 09 00 00 34 09 00 00 2a 09 00 00 17 09 00 00 ................d...4...*.......
c0e0 eb 08 00 00 a7 08 00 00 9d 08 00 00 8a 08 00 00 85 08 00 00 50 08 00 00 4f 08 00 00 18 08 00 00 ....................P...O.......
c100 f1 07 00 00 c2 07 00 00 bd 07 00 00 b3 07 00 00 9c 07 00 00 97 07 00 00 5d 07 00 00 5c 07 00 00 ........................]...\...
c120 2c 07 00 00 08 07 00 00 dd 06 00 00 d8 06 00 00 ce 06 00 00 bd 06 00 00 84 06 00 00 4c 06 00 00 ,...........................L...
c140 47 06 00 00 15 06 00 00 14 06 00 00 dd 05 00 00 b5 05 00 00 85 05 00 00 80 05 00 00 76 05 00 00 G...........................v...
c160 5a 05 00 00 55 05 00 00 0b 05 00 00 0a 05 00 00 d3 04 00 00 a9 04 00 00 77 04 00 00 72 04 00 00 Z...U...................w...r...
c180 68 04 00 00 55 04 00 00 50 04 00 00 1b 04 00 00 1a 04 00 00 13 04 00 00 d3 03 00 00 95 03 00 00 h...U...P.......................
c1a0 72 03 00 00 6a 03 00 00 43 03 00 00 14 03 00 00 0f 03 00 00 05 03 00 00 f3 02 00 00 ee 02 00 00 r...j...C.......................
c1c0 b9 02 00 00 b8 02 00 00 79 02 00 00 42 02 00 00 24 02 00 00 1f 02 00 00 15 02 00 00 ff 01 00 00 ........y...B...$...............
c1e0 fe 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 ................................
c200 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 .case.T_FieldSelect:....break;..
c220 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 73 75 62 6c 69 6e 6b 2d 3e 6c 6f 63 61 74 69 6f 6e 29 ..}...........sublink->location)
c240 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 65 78 70 72 4c 6f 63 61 ;.....loc.=.leftmostLoc(exprLoca
c260 74 69 6f 6e 28 73 75 62 6c 69 6e 6b 2d 3e 74 65 73 74 65 78 70 72 29 2c 00 09 09 09 09 2f 2a 20 tion(sublink->testexpr),...../*.
c280 63 68 65 63 6b 20 74 68 65 20 74 65 73 74 65 78 70 72 2c 20 69 66 20 61 6e 79 2c 20 61 6e 64 20 check.the.testexpr,.if.any,.and.
c2a0 74 68 65 20 6f 70 65 72 61 74 6f 72 2f 6b 65 79 77 6f 72 64 20 2a 2f 00 00 09 09 09 09 63 6f 6e the.operator/keyword.*/......con
c2c0 73 74 20 53 75 62 4c 69 6e 6b 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 28 63 6f 6e 73 74 20 53 75 62 st.SubLink.*sublink.=.(const.Sub
c2e0 4c 69 6e 6b 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 62 4c Link.*).expr;....{...case.T_SubL
c300 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 ink:....break;....}...........ex
c320 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 62 65 78 70 72 2d 3e 61 72 67 73 29 prLocation((Node.*).bexpr->args)
c340 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 62 65 78 70 72 2d 3e );.....loc.=.leftmostLoc(bexpr->
c360 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 74 68 69 6e 67 73 20 location,......*/......*.things.
c380 6c 69 6b 65 20 49 53 20 4e 4f 54 20 42 45 54 57 45 45 4e 2e 00 09 09 09 09 20 2a 20 73 70 65 63 like.IS.NOT.BETWEEN.......*.spec
c3a0 69 61 6c 2d 63 61 73 65 20 4e 4f 54 20 62 65 63 61 75 73 65 20 6f 66 20 74 68 65 20 77 61 79 20 ial-case.NOT.because.of.the.way.
c3c0 74 68 61 74 20 69 74 27 73 20 75 73 65 64 20 66 6f 72 00 09 09 09 09 20 2a 20 53 61 6d 65 20 61 that.it's.used.for......*.Same.a
c3e0 73 20 61 62 6f 76 65 2c 20 74 6f 20 68 61 6e 64 6c 65 20 65 69 74 68 65 72 20 4e 4f 54 20 6f 72 s.above,.to.handle.either.NOT.or
c400 20 41 4e 44 2f 4f 52 2e 20 20 57 65 20 63 61 6e 27 74 00 09 09 09 09 2f 2a 00 00 09 09 09 09 63 .AND/OR...We.can't...../*......c
c420 6f 6e 73 74 20 42 6f 6f 6c 45 78 70 72 20 2a 62 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 42 6f onst.BoolExpr.*bexpr.=.(const.Bo
c440 6f 6c 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 42 6f olExpr.*).expr;....{...case.T_Bo
c460 6f 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 olExpr:....break;....}..........
c480 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 73 61 6f 70 65 78 70 72 2d .exprLocation((Node.*).saopexpr-
c4a0 3e 61 72 67 73 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 73 >args));.....loc.=.leftmostLoc(s
c4c0 61 6f 70 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 63 6f 6e 73 69 64 aopexpr->location,...../*.consid
c4e0 65 72 20 62 6f 74 68 20 6f 70 65 72 61 74 6f 72 20 6e 61 6d 65 20 61 6e 64 20 6c 65 66 74 6d 6f er.both.operator.name.and.leftmo
c500 73 74 20 61 72 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 53 63 61 6c 61 72 41 72 72 61 79 st.arg.*/......const.ScalarArray
c520 4f 70 45 78 70 72 20 2a 73 61 6f 70 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 53 63 61 6c 61 72 OpExpr.*saopexpr.=.(const.Scalar
c540 41 72 72 61 79 4f 70 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 ArrayOpExpr.*).expr;....{...case
c560 20 54 5f 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 .T_ScalarArrayOpExpr:....break;.
c580 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 ...}...........exprLocation((Nod
c5a0 65 20 2a 29 20 6f 70 65 78 70 72 2d 3e 61 72 67 73 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c e.*).opexpr->args));.....loc.=.l
c5c0 65 66 74 6d 6f 73 74 4c 6f 63 28 6f 70 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 eftmostLoc(opexpr->location,....
c5e0 09 2f 2a 20 63 6f 6e 73 69 64 65 72 20 62 6f 74 68 20 6f 70 65 72 61 74 6f 72 20 6e 61 6d 65 20 ./*.consider.both.operator.name.
c600 61 6e 64 20 6c 65 66 74 6d 6f 73 74 20 61 72 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 4f and.leftmost.arg.*/......const.O
c620 70 45 78 70 72 20 2a 6f 70 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 4f 70 45 78 70 72 20 2a 29 pExpr.*opexpr.=.(const.OpExpr.*)
c640 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 49 66 45 78 70 72 3a .expr;....{...case.T_NullIfExpr:
c660 09 09 2f 2a 20 73 74 72 75 63 74 2d 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 4f 70 45 78 70 72 ../*.struct-equivalent.to.OpExpr
c680 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 09 2f 2a 20 73 74 .*/...case.T_DistinctExpr:./*.st
c6a0 72 75 63 74 2d 65 71 75 69 76 61 6c 65 6e 74 20 74 6f 20 4f 70 45 78 70 72 20 2a 2f 00 09 09 63 ruct-equivalent.to.OpExpr.*/...c
c6c0 61 73 65 20 54 5f 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 ase.T_OpExpr:....break;....}....
c6e0 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 6e 61 2d .......exprLocation((Node.*).na-
c700 3e 61 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 6e 61 >arg));.....loc.=.leftmostLoc(na
c720 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 63 6f 6e 73 69 64 65 72 20 62 6f 74 68 ->location,...../*.consider.both
c740 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 20 61 6e 64 20 76 61 6c 75 65 20 2a 2f 00 00 09 09 09 .argument.name.and.value.*/.....
c760 09 63 6f 6e 73 74 20 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 6e 61 20 3d 20 28 63 6f 6e 73 74 .const.NamedArgExpr.*na.=.(const
c780 20 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 .NamedArgExpr.*).expr;....{...ca
c7a0 73 65 20 54 5f 4e 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 se.T_NamedArgExpr:....break;....
c7c0 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a }...........exprLocation((Node.*
c7e0 29 20 66 65 78 70 72 2d 3e 61 72 67 73 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d ).fexpr->args));.....loc.=.leftm
c800 6f 73 74 4c 6f 63 28 66 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 63 ostLoc(fexpr->location,...../*.c
c820 6f 6e 73 69 64 65 72 20 62 6f 74 68 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 6c onsider.both.function.name.and.l
c840 65 66 74 6d 6f 73 74 20 61 72 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 46 75 6e 63 45 78 eftmost.arg.*/......const.FuncEx
c860 70 72 20 2a 66 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 46 75 6e 63 45 78 70 72 20 2a 29 20 65 pr.*fexpr.=.(const.FuncExpr.*).e
c880 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 09 xpr;....{...case.T_FuncExpr:....
c8a0 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f break;....loc.=.exprLocation((No
c8c0 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 52 65 66 20 2a 29 20 65 78 70 72 29 2d de.*).((const.ArrayRef.*).expr)-
c8e0 3e 72 65 66 65 78 70 72 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 72 61 79 20 >refexpr);..../*.just.use.array.
c900 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f argument's.location.*/...case.T_
c920 41 72 72 61 79 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 ArrayRef:....break;....loc.=.((c
c940 6f 6e 73 74 20 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 onst.WindowFunc.*).expr)->locati
c960 6f 6e 3b 00 09 09 09 2f 2a 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 73 68 6f 75 6c 64 20 61 on;..../*.function.name.should.a
c980 6c 77 61 79 73 20 62 65 20 74 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 61 lways.be.the.first.thing.*/...ca
c9a0 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f se.T_WindowFunc:....break;....lo
c9c0 63 20 3d 20 28 28 63 6f 6e 73 74 20 47 72 6f 75 70 69 6e 67 46 75 6e 63 20 2a 29 20 65 78 70 72 c.=.((const.GroupingFunc.*).expr
c9e0 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 46 75 )->location;...case.T_GroupingFu
ca00 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 41 nc:....break;....loc.=.((const.A
ca20 67 67 72 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 ggref.*).expr)->location;..../*.
ca40 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 74 function.name.should.always.be.t
ca60 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 41 67 67 72 65 he.first.thing.*/...case.T_Aggre
ca80 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 50 61 f:....break;....loc.=.((const.Pa
caa0 72 61 6d 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 ram.*).expr)->location;...case.T
cac0 5f 50 61 72 61 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e _Param:....break;....loc.=.((con
cae0 73 74 20 43 6f 6e 73 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 st.Const.*).expr)->location;...c
cb00 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 ase.T_Const:....break;....loc.=.
cb20 28 28 63 6f 6e 73 74 20 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 ((const.Var.*).expr)->location;.
cb40 09 09 63 61 73 65 20 54 5f 56 61 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d ..case.T_Var:....break;....loc.=
cb60 20 28 28 63 6f 6e 73 74 20 52 61 6e 67 65 56 61 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 .((const.RangeVar.*).expr)->loca
cb80 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 56 61 72 3a 00 09 7b 00 09 73 77 69 tion;...case.T_RangeVar:..{..swi
cba0 74 63 68 20 28 6e 6f 64 65 54 61 67 28 65 78 70 72 29 29 00 09 09 72 65 74 75 72 6e 20 2d 31 3b tch.(nodeTag(expr))...return.-1;
cbc0 00 09 69 66 20 28 65 78 70 72 20 3d 3d 20 4e 55 4c 4c 29 00 00 09 69 6e 74 09 09 09 6c 6f 63 3b ..if.(expr.==.NULL)...int...loc;
cbe0 00 7b 00 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 63 6f 6e 73 74 20 4e 6f 64 65 20 2a 65 78 70 72 .{.exprLocation(const.Node.*expr
cc00 29 00 69 6e 74 00 20 2a 2f 00 20 2a 20 6b 6e 6f 77 6e 20 61 6e 64 20 75 6e 6b 6e 6f 77 6e 20 6c ).int..*/..*.known.and.unknown.l
cc20 6f 63 61 74 69 6f 6e 73 20 69 6e 20 61 20 74 72 65 65 2e 00 20 2a 20 63 6f 65 72 63 69 6f 6e 73 ocations.in.a.tree...*.coercions
cc40 29 20 77 69 6c 6c 20 68 61 76 65 20 6c 6f 63 61 74 69 6f 6e 20 2d 31 2c 20 61 6e 64 20 73 6f 20 ).will.have.location.-1,.and.so.
cc60 77 65 20 63 61 6e 20 68 61 76 65 20 6f 64 64 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 6f 66 00 we.can.have.odd.combinations.of.
cc80 20 2a 20 69 6e 73 65 72 74 65 64 20 69 6d 70 6c 69 63 69 74 6c 79 20 62 79 20 70 61 72 73 65 20 .*.inserted.implicitly.by.parse.
cca0 61 6e 61 6c 79 73 69 73 20 28 73 75 63 68 20 61 73 20 46 75 6e 63 45 78 70 72 73 20 66 6f 72 20 analysis.(such.as.FuncExprs.for.
ccc0 69 6d 70 6c 69 63 69 74 00 20 2a 20 70 6f 69 6e 74 65 72 20 69 73 20 74 6f 20 74 68 65 20 72 69 implicit..*.pointer.is.to.the.ri
cce0 67 68 74 20 6f 66 20 69 74 73 20 6c 65 66 74 6d 6f 73 74 20 61 72 67 75 6d 65 6e 74 2e 20 20 41 ght.of.its.leftmost.argument...A
cd00 6c 73 6f 2c 20 6e 6f 64 65 73 20 74 68 61 74 20 77 65 72 65 00 20 2a 20 66 6f 72 20 69 6e 73 74 lso,.nodes.that.were..*.for.inst
cd20 61 6e 63 65 20 78 20 49 53 20 4e 4f 54 20 42 45 54 57 45 45 4e 20 2e 2e 2e 20 62 65 63 6f 6d 65 ance.x.IS.NOT.BETWEEN.....become
cd40 73 20 61 20 4e 4f 54 2d 65 78 70 72 65 73 73 69 6f 6e 20 77 68 6f 73 65 20 6b 65 79 77 6f 72 64 s.a.NOT-expression.whose.keyword
cd60 00 20 2a 20 73 6f 6d 65 74 69 6d 65 73 20 62 75 69 6c 64 73 20 65 78 70 72 65 73 73 69 6f 6e 73 ..*.sometimes.builds.expressions
cd80 20 74 68 61 74 20 61 72 65 6e 27 74 20 71 75 69 74 65 20 77 68 61 74 20 74 68 65 20 75 73 65 72 .that.aren't.quite.what.the.user
cda0 20 77 72 6f 74 65 3b 00 20 2a 20 74 6f 20 62 65 20 74 6f 20 74 68 65 20 6c 65 66 74 20 6f 66 20 .wrote;..*.to.be.to.the.left.of.
cdc0 74 68 65 6d 3f 20 20 54 68 65 72 65 20 61 72 65 20 61 20 63 6f 75 70 6c 65 20 6f 66 20 72 65 61 them?..There.are.a.couple.of.rea
cde0 73 6f 6e 73 2e 20 20 54 68 65 20 67 72 61 6d 6d 61 72 00 20 2a 20 74 68 65 20 6f 70 65 72 61 6e sons...The.grammar..*.the.operan
ce00 64 73 20 6f 66 20 61 20 46 75 6e 63 45 78 70 72 20 6e 6f 64 65 2c 20 77 68 65 6e 20 74 68 65 20 ds.of.a.FuncExpr.node,.when.the.
ce20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 63 61 6e 20 62 65 20 65 78 70 65 63 74 65 64 00 20 2a function.name.can.be.expected..*
ce40 20 59 6f 75 20 6d 69 67 68 74 20 74 68 69 6e 6b 20 74 68 61 74 20 74 68 69 73 20 63 6f 64 65 20 .You.might.think.that.this.code.
ce60 69 73 20 6f 76 65 72 6c 79 20 67 65 6e 65 72 61 6c 2c 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 20 is.overly.general,.for.instance.
ce80 77 68 79 20 63 68 65 63 6b 00 20 2a 00 20 2a 20 42 75 74 20 69 74 20 73 68 6f 75 6c 64 20 62 65 why.check..*..*.But.it.should.be
cea0 20 70 6c 65 6e 74 79 20 67 6f 6f 64 20 65 6e 6f 75 67 68 20 66 6f 72 20 65 72 72 6f 72 20 72 65 .plenty.good.enough.for.error.re
cec0 70 6f 72 74 69 6e 67 20 70 75 72 70 6f 73 65 73 2e 00 20 2a 20 68 61 64 20 62 65 65 6e 20 77 72 porting.purposes...*.had.been.wr
cee0 69 74 74 65 6e 20 22 28 61 20 2b 20 62 29 20 2a 20 63 22 20 77 65 20 61 72 65 20 67 6f 69 6e 67 itten."(a.+.b).*.c".we.are.going
cf00 20 74 6f 20 70 6f 69 6e 74 20 61 74 20 22 61 22 20 6e 6f 74 20 22 28 22 2e 00 20 2a 20 65 78 70 .to.point.at."a".not."("...*.exp
cf20 6c 69 63 69 74 6c 79 20 72 65 70 72 65 73 65 6e 74 20 70 61 72 65 6e 74 68 65 73 65 73 20 69 6e licitly.represent.parentheses.in
cf40 20 74 68 65 20 70 61 72 73 65 74 72 65 65 2c 20 67 69 76 65 6e 20 73 6f 6d 65 74 68 69 6e 67 20 .the.parsetree,.given.something.
cf60 74 68 61 74 00 20 2a 20 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 69 73 20 6e 6f 74 20 70 65 72 66 that..*.The.location.is.not.perf
cf80 65 63 74 20 2d 2d 2d 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 73 69 6e 63 65 20 74 68 65 20 67 ect.---.for.example,.since.the.g
cfa0 72 61 6d 6d 61 72 20 64 6f 65 73 6e 27 74 00 20 2a 00 20 2a 20 74 68 61 74 20 6f 70 65 72 61 74 rammar.doesn't..*..*.that.operat
cfc0 6f 72 2c 20 61 6e 64 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 69 74 73 20 73 74 61 72 74 20 73 65 or,.and.pointing.to.its.start.se
cfe0 65 6d 73 20 74 6f 20 62 65 20 74 68 65 20 6d 6f 73 74 20 6e 61 74 75 72 61 6c 20 77 61 79 2e 00 ems.to.be.the.most.natural.way..
d000 61 64 00 00 3f 00 00 00 47 02 00 00 00 10 00 00 7b 00 00 00 00 00 00 00 da 0f 00 00 97 0f 00 00 ad..?...G.......{...............
d020 8d 0f 00 00 78 0f 00 00 52 0f 00 00 10 0f 00 00 06 0f 00 00 f0 0e 00 00 eb 0e 00 00 b0 0e 00 00 ....x...R.......................
d040 af 0e 00 00 97 0e 00 00 70 0e 00 00 42 0e 00 00 3d 0e 00 00 33 0e 00 00 1d 0e 00 00 18 0e 00 00 ........p...B...=...3...........
d060 dd 0d 00 00 dc 0d 00 00 c4 0d 00 00 9d 0d 00 00 6f 0d 00 00 6a 0d 00 00 60 0d 00 00 46 0d 00 00 ................o...j...`...F...
d080 41 0d 00 00 fe 0c 00 00 fd 0c 00 00 e5 0c 00 00 be 0c 00 00 90 0c 00 00 8b 0c 00 00 81 0c 00 00 A...............................
d0a0 64 0c 00 00 5f 0c 00 00 16 0c 00 00 15 0c 00 00 fd 0b 00 00 d6 0b 00 00 a8 0b 00 00 a3 0b 00 00 d..._...........................
d0c0 99 0b 00 00 83 0b 00 00 5d 0b 00 00 1a 0b 00 00 10 0b 00 00 fd 0a 00 00 c6 0a 00 00 98 0a 00 00 ........].......................
d0e0 8e 0a 00 00 7b 0a 00 00 44 0a 00 00 16 0a 00 00 0c 0a 00 00 f8 09 00 00 b5 09 00 00 86 09 00 00 ....{...D.......................
d100 7c 09 00 00 6a 09 00 00 29 09 00 00 fc 08 00 00 f2 08 00 00 d9 08 00 00 aa 08 00 00 62 08 00 00 |...j...)...................b...
d120 58 08 00 00 41 08 00 00 06 08 00 00 d4 07 00 00 ca 07 00 00 b5 07 00 00 74 07 00 00 44 07 00 00 X...A...................t...D...
d140 3a 07 00 00 28 07 00 00 23 07 00 00 f0 06 00 00 ef 06 00 00 b8 06 00 00 91 06 00 00 62 06 00 00 :...(...#...................b...
d160 5d 06 00 00 53 06 00 00 40 06 00 00 3b 06 00 00 06 06 00 00 05 06 00 00 ed 05 00 00 c6 05 00 00 ]...S...@...;...................
d180 98 05 00 00 93 05 00 00 89 05 00 00 73 05 00 00 6e 05 00 00 33 05 00 00 32 05 00 00 1a 05 00 00 ............s...n...3...2.......
d1a0 f3 04 00 00 c5 04 00 00 c0 04 00 00 b6 04 00 00 9d 04 00 00 98 04 00 00 57 04 00 00 56 04 00 00 ........................W...V...
d1c0 3e 04 00 00 17 04 00 00 e9 03 00 00 e4 03 00 00 da 03 00 00 bc 03 00 00 83 03 00 00 79 03 00 00 >...........................y...
d1e0 62 03 00 00 30 03 00 00 26 03 00 00 10 03 00 00 ea 02 00 00 a6 02 00 00 9c 02 00 00 87 02 00 00 b...0...&.......................
d200 47 02 00 00 46 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 G...F...........................
d220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
d240 00 00 00 00 00 00 00 09 09 09 2f 2a 20 75 73 65 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 64 20 52 ........../*.use.the.contained.R
d260 61 6e 67 65 56 61 72 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2d 2d 2d 20 63 6c 6f 73 65 20 65 6e 6f angeVar's.location.---.close.eno
d280 75 67 68 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 49 6e 74 6f 43 6c 61 75 73 65 3a 00 09 09 09 62 ugh.*/...case.T_IntoClause:....b
d2a0 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 reak;....loc.=.exprLocation((Nod
d2c0 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 54 61 72 67 65 74 45 6e 74 72 79 20 2a 29 20 65 78 70 72 e.*).((const.TargetEntry.*).expr
d2e0 29 2d 3e 65 78 70 72 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 67 75 6d 65 6e )->expr);..../*.just.use.argumen
d300 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 54 61 72 67 65 74 45 t's.location.*/...case.T_TargetE
d320 6e 74 72 79 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 ntry:....break;....loc.=.((const
d340 20 53 65 74 54 6f 44 65 66 61 75 6c 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e .SetToDefault.*).expr)->location
d360 3b 00 09 09 63 61 73 65 20 54 5f 53 65 74 54 6f 44 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 ;...case.T_SetToDefault:....brea
d380 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 k;....loc.=.((const.CoerceToDoma
d3a0 69 6e 56 61 6c 75 65 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 inValue.*).expr)->location;...ca
d3c0 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 09 09 62 72 65 se.T_CoerceToDomainValue:....bre
d3e0 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 ak;....}...........exprLocation(
d400 28 4e 6f 64 65 20 2a 29 20 63 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d (Node.*).cexpr->arg));.....loc.=
d420 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 63 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 .leftmostLoc(cexpr->location,...
d440 09 09 2f 2a 20 4d 75 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 ../*.Much.as.above.*/......const
d460 20 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 63 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 .CoerceToDomain.*cexpr.=.(const.
d480 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 CoerceToDomain.*).expr;....{...c
d4a0 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 ase.T_CoerceToDomain:....break;.
d4c0 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 ...}...........exprLocation((Nod
d4e0 65 20 2a 29 20 62 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 e.*).bexpr->arg));.....loc.=.lef
d500 74 6d 6f 73 74 4c 6f 63 28 62 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a tmostLoc(bexpr->location,...../*
d520 20 4d 75 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 42 6f 6f .Much.as.above.*/......const.Boo
d540 6c 65 61 6e 54 65 73 74 20 2a 62 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 42 6f 6f 6c 65 61 6e leanTest.*bexpr.=.(const.Boolean
d560 54 65 73 74 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c Test.*).expr;....{...case.T_Bool
d580 65 61 6e 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 eanTest:....break;....}.........
d5a0 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 6e 65 78 70 72 2d 3e 61 ..exprLocation((Node.*).nexpr->a
d5c0 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 6e 65 78 70 rg));.....loc.=.leftmostLoc(nexp
d5e0 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 4d 75 63 68 20 61 73 20 61 62 6f 76 r->location,...../*.Much.as.abov
d600 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 4e 75 6c 6c 54 65 73 74 20 2a 6e 65 78 70 72 20 e.*/......const.NullTest.*nexpr.
d620 3d 20 28 63 6f 6e 73 74 20 4e 75 6c 6c 54 65 73 74 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 =.(const.NullTest.*).expr;....{.
d640 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ..case.T_NullTest:....break;....
d660 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a }...........exprLocation((Node.*
d680 29 20 78 65 78 70 72 2d 3e 61 72 67 73 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d ).xexpr->args));.....loc.=.leftm
d6a0 6f 73 74 4c 6f 63 28 78 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 63 ostLoc(xexpr->location,...../*.c
d6c0 6f 6e 73 69 64 65 72 20 62 6f 74 68 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 61 6e 64 20 6c onsider.both.function.name.and.l
d6e0 65 66 74 6d 6f 73 74 20 61 72 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 58 6d 6c 45 78 70 eftmost.arg.*/......const.XmlExp
d700 72 20 2a 78 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 58 6d 6c 45 78 70 72 20 2a 29 20 65 78 70 r.*xexpr.=.(const.XmlExpr.*).exp
d720 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 62 72 65 r;....{...case.T_XmlExpr:....bre
d740 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 4d 69 6e 4d 61 78 45 78 70 72 20 ak;....loc.=.((const.MinMaxExpr.
d760 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 47 52 45 41 54 45 *).expr)->location;..../*.GREATE
d780 53 54 2f 4c 45 41 53 54 20 6b 65 79 77 6f 72 64 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 ST/LEAST.keyword.should.always.b
d7a0 65 20 74 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 4d 69 e.the.first.thing.*/...case.T_Mi
d7c0 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 nMaxExpr:....break;....loc.=.((c
d7e0 6f 6e 73 74 20 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 onst.CoalesceExpr.*).expr)->loca
d800 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 43 4f 41 4c 45 53 43 45 20 6b 65 79 77 6f 72 64 20 73 68 6f tion;..../*.COALESCE.keyword.sho
d820 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 74 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f uld.always.be.the.first.thing.*/
d840 00 09 09 63 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b ...case.T_CoalesceExpr:....break
d860 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 ;....loc.=.exprLocation((Node.*)
d880 20 28 28 63 6f 6e 73 74 20 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 .((const.RowCompareExpr.*).expr)
d8a0 2d 3e 6c 61 72 67 73 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 6c 65 66 74 6d 6f 73 ->largs);..../*.just.use.leftmos
d8c0 74 20 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 t.argument's.location.*/...case.
d8e0 54 5f 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c T_RowCompareExpr:....break;....l
d900 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 52 6f 77 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c oc.=.((const.RowExpr.*).expr)->l
d920 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 70 6f 69 6e ocation;..../*.the.location.poin
d940 74 73 20 61 74 20 52 4f 57 20 6f 72 20 28 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 6c 65 ts.at.ROW.or.(,.which.must.be.le
d960 66 74 6d 6f 73 74 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 62 ftmost.*/...case.T_RowExpr:....b
d980 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 41 72 72 61 79 45 78 70 72 reak;....loc.=.((const.ArrayExpr
d9a0 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 74 68 65 20 6c .*).expr)->location;..../*.the.l
d9c0 6f 63 61 74 69 6f 6e 20 70 6f 69 6e 74 73 20 61 74 20 41 52 52 41 59 20 6f 72 20 5b 2c 20 77 68 ocation.points.at.ARRAY.or.[,.wh
d9e0 69 63 68 20 6d 75 73 74 20 62 65 20 6c 65 66 74 6d 6f 73 74 20 2a 2f 00 09 09 63 61 73 65 20 54 ich.must.be.leftmost.*/...case.T
da00 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 _ArrayExpr:....break;....loc.=.(
da20 28 63 6f 6e 73 74 20 43 61 73 65 57 68 65 6e 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 (const.CaseWhen.*).expr)->locati
da40 6f 6e 3b 00 09 09 09 2f 2a 20 57 48 45 4e 20 6b 65 79 77 6f 72 64 20 73 68 6f 75 6c 64 20 61 6c on;..../*.WHEN.keyword.should.al
da60 77 61 79 73 20 62 65 20 74 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 61 73 ways.be.the.first.thing.*/...cas
da80 65 20 54 5f 43 61 73 65 57 68 65 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d e.T_CaseWhen:....break;....loc.=
daa0 20 28 28 63 6f 6e 73 74 20 43 61 73 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 .((const.CaseExpr.*).expr)->loca
dac0 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 43 41 53 45 20 6b 65 79 77 6f 72 64 20 73 68 6f 75 6c 64 20 tion;..../*.CASE.keyword.should.
dae0 61 6c 77 61 79 73 20 62 65 20 74 68 65 20 66 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 always.be.the.first.thing.*/...c
db00 61 73 65 20 54 5f 43 61 73 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 ase.T_CaseExpr:....break;....loc
db20 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 .=.exprLocation((Node.*).((const
db40 20 43 6f 6c 6c 61 74 65 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 09 .CollateExpr.*).expr)->arg);....
db60 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 /*.just.use.argument's.location.
db80 2a 2f 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 6c 61 74 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 */...case.T_CollateExpr:....brea
dba0 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 k;....}...........exprLocation((
dbc0 4e 6f 64 65 20 2a 29 20 63 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 Node.*).cexpr->arg));.....loc.=.
dbe0 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 63 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 leftmostLoc(cexpr->location,....
dc00 09 2f 2a 20 4d 75 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 ./*.Much.as.above.*/......const.
dc20 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 20 2a 63 65 78 70 72 20 3d 20 28 63 6f 6e ConvertRowtypeExpr.*cexpr.=.(con
dc40 73 74 20 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 st.ConvertRowtypeExpr.*).expr;..
dc60 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 3a ..{...case.T_ConvertRowtypeExpr:
dc80 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f ....break;....}...........exprLo
dca0 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 63 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 cation((Node.*).cexpr->arg));...
dcc0 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 63 65 78 70 72 2d 3e 6c 6f 63 61 74 ..loc.=.leftmostLoc(cexpr->locat
dce0 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 4d 75 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 ion,...../*.Much.as.above.*/....
dd00 09 09 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 63 65 78 70 72 20 3d ..const.ArrayCoerceExpr.*cexpr.=
dd20 20 28 63 6f 6e 73 74 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 65 78 70 72 3b .(const.ArrayCoerceExpr.*).expr;
dd40 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 ....{...case.T_ArrayCoerceExpr:.
dd60 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 ...break;....}...........exprLoc
dd80 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 63 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 09 ation((Node.*).cexpr->arg));....
dda0 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 63 65 78 70 72 2d 3e 6c 6f 63 61 74 69 .loc.=.leftmostLoc(cexpr->locati
ddc0 6f 6e 2c 00 09 09 09 09 2f 2a 20 4d 75 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 09 on,...../*.Much.as.above.*/.....
dde0 09 63 6f 6e 73 74 20 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 63 65 78 70 72 20 3d 20 28 63 6f 6e .const.CoerceViaIO.*cexpr.=.(con
de00 73 74 20 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 st.CoerceViaIO.*).expr;....{...c
de20 61 73 65 20 54 5f 43 6f 65 72 63 65 56 69 61 49 4f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ase.T_CoerceViaIO:....break;....
de40 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a }...........exprLocation((Node.*
de60 29 20 72 65 78 70 72 2d 3e 61 72 67 29 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d 6f ).rexpr->arg));.....loc.=.leftmo
de80 73 74 4c 6f 63 28 72 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 09 09 2f 2a 20 4d 75 stLoc(rexpr->location,...../*.Mu
dea0 63 68 20 61 73 20 61 62 6f 76 65 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 74 20 52 65 6c 61 62 65 ch.as.above.*/......const.Relabe
dec0 6c 54 79 70 65 20 2a 72 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 52 65 6c 61 62 65 6c 54 79 70 lType.*rexpr.=.(const.RelabelTyp
dee0 65 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c e.*).expr;....{...case.T_Relabel
df00 54 79 70 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 Type:....break;....loc.=.exprLoc
df20 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 46 69 65 6c 64 53 74 6f 72 ation((Node.*).((const.FieldStor
df40 65 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 e.*).expr)->arg);..../*.just.use
df60 20 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 .argument's.location.*/...case.T
df80 5f 46 69 65 6c 64 53 74 6f 72 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 _FieldStore:....break;....loc.=.
dfa0 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 46 69 exprLocation((Node.*).((const.Fi
dfc0 65 6c 64 53 65 6c 65 63 74 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 29 3b 00 09 09 09 2f 2a 20 eldSelect.*).expr)->arg);..../*.
dfe0 6a 75 73 74 20 75 73 65 20 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 just.use.argument's.location.*/.
e000 61 64 00 00 3b 00 00 00 3b 02 00 00 00 10 00 00 79 00 00 00 00 00 00 00 be 0f 00 00 b4 0f 00 00 ad..;...;.......y...............
e020 a5 0f 00 00 a0 0f 00 00 5d 0f 00 00 49 0f 00 00 48 0f 00 00 11 0f 00 00 ec 0e 00 00 e6 0e 00 00 ........]...I...H...............
e040 b8 0e 00 00 a5 0e 00 00 98 0e 00 00 92 0e 00 00 8d 0e 00 00 83 0e 00 00 72 0e 00 00 6d 0e 00 00 ........................r...m...
e060 3c 0e 00 00 3b 0e 00 00 ff 0d 00 00 c0 0d 00 00 99 0d 00 00 72 0d 00 00 6d 0d 00 00 63 0d 00 00 <...;...............r...m...c...
e080 4f 0d 00 00 20 0d 00 00 16 0d 00 00 03 0d 00 00 d5 0c 00 00 cb 0c 00 00 b9 0c 00 00 8c 0c 00 00 O...............................
e0a0 82 0c 00 00 6f 0c 00 00 6a 0c 00 00 38 0c 00 00 37 0c 00 00 00 0c 00 00 be 0b 00 00 9a 0b 00 00 ....o...j...8...7...............
e0c0 6e 0b 00 00 69 0b 00 00 5f 0b 00 00 49 0b 00 00 06 0b 00 00 d5 0a 00 00 cb 0a 00 00 b7 0a 00 00 n...i..._...I...................
e0e0 78 0a 00 00 49 0a 00 00 3f 0a 00 00 26 0a 00 00 e6 09 00 00 dc 09 00 00 c9 09 00 00 c4 09 00 00 x...I...?...&...................
e100 92 09 00 00 91 09 00 00 8a 09 00 00 48 09 00 00 18 09 00 00 10 09 00 00 ef 08 00 00 bb 08 00 00 ............H...................
e120 91 08 00 00 8c 08 00 00 82 08 00 00 6a 08 00 00 44 08 00 00 08 08 00 00 fe 07 00 00 ed 07 00 00 ............j...D...............
e140 ad 07 00 00 77 07 00 00 6d 07 00 00 59 07 00 00 2a 07 00 00 20 07 00 00 05 07 00 00 cf 06 00 00 ....w...m...Y...*...............
e160 c5 06 00 00 b2 06 00 00 84 06 00 00 7a 06 00 00 66 06 00 00 37 06 00 00 2d 06 00 00 18 06 00 00 ............z...f...7...-.......
e180 e8 05 00 00 de 05 00 00 c2 05 00 00 9c 05 00 00 4f 05 00 00 45 05 00 00 2e 05 00 00 ef 04 00 00 ................O...E...........
e1a0 bd 04 00 00 b3 04 00 00 9d 04 00 00 6c 04 00 00 62 04 00 00 4d 04 00 00 1d 04 00 00 13 04 00 00 ............l...b...M...........
e1c0 fd 03 00 00 cc 03 00 00 c2 03 00 00 a7 03 00 00 71 03 00 00 67 03 00 00 4d 03 00 00 18 03 00 00 ................q...g...M.......
e1e0 0e 03 00 00 f5 02 00 00 cf 02 00 00 86 02 00 00 7c 02 00 00 64 02 00 00 3b 02 00 00 3a 02 00 00 ................|...d...;...:...
e200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 09 09 2f 2a ............................../*
e240 20 6a 75 73 74 20 75 73 65 20 6e 65 73 74 65 64 20 65 78 70 72 27 73 20 6c 6f 63 61 74 69 6f 6e .just.use.nested.expr's.location
e260 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 3a 00 09 09 09 62 .*/...case.T_InferenceElem:....b
e280 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 reak;....loc.=.exprLocation((Nod
e2a0 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 20 2a 29 20 65 e.*).((const.PlaceHolderVar.*).e
e2c0 78 70 72 29 2d 3e 70 68 65 78 70 72 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 xpr)->phexpr);..../*.just.use.ar
e2e0 67 75 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 50 6c gument's.location.*/...case.T_Pl
e300 61 63 65 48 6f 6c 64 65 72 56 61 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d aceHolderVar:....break;....loc.=
e320 20 28 28 63 6f 6e 73 74 20 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 20 2a 29 20 65 78 70 72 .((const.CommonTableExpr.*).expr
e340 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6d 6d 6f 6e 54 61 62 6c )->location;...case.T_CommonTabl
e360 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 eExpr:....break;....loc.=.((cons
e380 74 20 4f 6e 43 6f 6e 66 6c 69 63 74 43 6c 61 75 73 65 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 t.OnConflictClause.*).expr)->loc
e3a0 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 4f 6e 43 6f 6e 66 6c 69 63 74 43 6c 61 75 73 65 ation;...case.T_OnConflictClause
e3c0 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 49 6e 66 :....break;....loc.=.((const.Inf
e3e0 65 72 43 6c 61 75 73 65 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 erClause.*).expr)->location;...c
e400 61 73 65 20 54 5f 49 6e 66 65 72 43 6c 61 75 73 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ase.T_InferClause:....break;....
e420 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 57 69 74 68 43 6c 61 75 73 65 20 2a 29 20 65 78 70 72 loc.=.((const.WithClause.*).expr
e440 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 57 69 74 68 43 6c 61 75 73 65 )->location;...case.T_WithClause
e460 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 47 72 6f :....break;....loc.=.((const.Gro
e480 75 70 69 6e 67 53 65 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 upingSet.*).expr)->location;...c
e4a0 61 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 53 65 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 ase.T_GroupingSet:....break;....
e4c0 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 58 6d 6c 53 65 72 69 61 6c 69 7a 65 20 2a 29 20 65 78 loc.=.((const.XmlSerialize.*).ex
e4e0 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 58 4d 4c 53 45 52 49 41 4c 49 5a pr)->location;..../*.XMLSERIALIZ
e500 45 20 6b 65 79 77 6f 72 64 20 73 68 6f 75 6c 64 20 61 6c 77 61 79 73 20 62 65 20 74 68 65 20 66 E.keyword.should.always.be.the.f
e520 69 72 73 74 20 74 68 69 6e 67 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 53 65 72 69 61 6c irst.thing.*/...case.T_XmlSerial
e540 69 7a 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 ize:....break;....loc.=.exprLoca
e560 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 20 46 75 6e 63 74 69 6f 6e 50 61 tion((Node.*).((const.FunctionPa
e580 72 61 6d 65 74 65 72 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 67 54 79 70 65 29 3b 00 09 09 09 2f rameter.*).expr)->argType);..../
e5a0 2a 20 6a 75 73 74 20 75 73 65 20 74 79 70 65 6e 61 6d 65 27 73 20 6c 6f 63 61 74 69 6f 6e 20 2a *.just.use.typename's.location.*
e5c0 2f 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 74 69 6f 6e 50 61 72 61 6d 65 74 65 72 3a 00 09 09 /...case.T_FunctionParameter:...
e5e0 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 6e 73 74 72 61 .break;....loc.=.((const.Constra
e600 69 6e 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 int.*).expr)->location;...case.T
e620 5f 43 6f 6e 73 74 72 61 69 6e 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 _Constraint:....break;....loc.=.
e640 28 28 63 6f 6e 73 74 20 43 6f 6c 75 6d 6e 44 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 ((const.ColumnDef.*).expr)->loca
e660 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 75 6d 6e 44 65 66 3a 00 09 09 09 62 72 65 tion;...case.T_ColumnDef:....bre
e680 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 54 79 70 65 4e 61 6d 65 20 2a 29 ak;....loc.=.((const.TypeName.*)
e6a0 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 54 79 70 65 4e .expr)->location;...case.T_TypeN
e6c0 61 6d 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 ame:....break;....loc.=.((const.
e6e0 52 61 6e 67 65 54 61 62 6c 65 53 61 6d 70 6c 65 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 RangeTableSample.*).expr)->locat
e700 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 54 61 62 6c 65 53 61 6d 70 6c 65 3a 00 ion;...case.T_RangeTableSample:.
e720 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 57 69 6e 64 6f ...break;....loc.=.((const.Windo
e740 77 44 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 wDef.*).expr)->location;...case.
e760 54 5f 57 69 6e 64 6f 77 44 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 T_WindowDef:....break;....loc.=.
e780 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 28 63 6f 6e 73 74 20 53 6f 72 74 42 79 20 2a 29 20 65 exprLocation(((const.SortBy.*).e
e7a0 78 70 72 29 2d 3e 6e 6f 64 65 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 67 75 xpr)->node);..../*.just.use.argu
e7c0 6d 65 6e 74 27 73 20 6c 6f 63 61 74 69 6f 6e 20 28 69 67 6e 6f 72 65 20 6f 70 65 72 61 74 6f 72 ment's.location.(ignore.operator
e7e0 2c 20 69 66 20 61 6e 79 29 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 53 6f 72 74 42 79 3a 00 09 09 ,.if.any).*/...case.T_SortBy:...
e800 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 28 .break;....loc.=.exprLocation(((
e820 63 6f 6e 73 74 20 43 6f 6c 6c 61 74 65 43 6c 61 75 73 65 20 2a 29 20 65 78 70 72 29 2d 3e 61 72 const.CollateClause.*).expr)->ar
e840 67 29 3b 00 09 09 09 2f 2a 20 6a 75 73 74 20 75 73 65 20 61 72 67 75 6d 65 6e 74 27 73 20 6c 6f g);..../*.just.use.argument's.lo
e860 63 61 74 69 6f 6e 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 6c 61 74 65 43 6c 61 75 73 65 cation.*/...case.T_CollateClause
e880 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 6c 6f 63 20 3d 20 6c 65 66 74 6d :....break;....}.....loc.=.leftm
e8a0 6f 73 74 4c 6f 63 28 6c 6f 63 2c 20 74 63 2d 3e 6c 6f 63 61 74 69 6f 6e 29 3b 00 09 09 09 09 6c ostLoc(loc,.tc->location);.....l
e8c0 6f 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 6c 6f 63 2c 20 74 63 2d 3e 74 79 70 65 4e 61 oc.=.leftmostLoc(loc,.tc->typeNa
e8e0 6d 65 2d 3e 6c 6f 63 61 74 69 6f 6e 29 3b 00 09 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 me->location);.....loc.=.exprLoc
e900 61 74 69 6f 6e 28 74 63 2d 3e 61 72 67 29 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 61 ation(tc->arg);......*/......*.a
e920 6e 79 20 6f 66 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 20 6d 69 67 68 74 20 62 65 20 6c 65 ny.of.the.components.might.be.le
e940 66 74 6d 6f 73 74 2e 00 09 09 09 09 20 2a 20 54 68 69 73 20 63 6f 75 6c 64 20 72 65 70 72 65 73 ftmost.......*.This.could.repres
e960 65 6e 74 20 43 41 53 54 28 29 2c 20 3a 3a 2c 20 6f 72 20 54 79 70 65 4e 61 6d 65 20 27 6c 69 74 ent.CAST(),.::,.or.TypeName.'lit
e980 65 72 61 6c 27 2c 20 73 6f 00 09 09 09 09 2f 2a 00 00 09 09 09 09 63 6f 6e 73 74 20 54 79 70 65 eral',.so...../*......const.Type
e9a0 43 61 73 74 20 2a 74 63 20 3d 20 28 63 6f 6e 73 74 20 54 79 70 65 43 61 73 74 20 2a 29 20 65 78 Cast.*tc.=.(const.TypeCast.*).ex
e9c0 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 54 79 70 65 43 61 73 74 3a 00 09 09 09 62 pr;....{...case.T_TypeCast:....b
e9e0 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 28 63 6f reak;....loc.=.exprLocation(((co
ea00 6e 73 74 20 4d 75 6c 74 69 41 73 73 69 67 6e 52 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 73 6f 75 nst.MultiAssignRef.*).expr)->sou
ea20 72 63 65 29 3b 00 09 09 63 61 73 65 20 54 5f 4d 75 6c 74 69 41 73 73 69 67 6e 52 65 66 3a 00 09 rce);...case.T_MultiAssignRef:..
ea40 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 52 65 73 54 61 72 ..break;....loc.=.((const.ResTar
ea60 67 65 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 77 65 get.*).expr)->location;..../*.we
ea80 20 6e 65 65 64 20 6e 6f 74 20 65 78 61 6d 69 6e 65 20 74 68 65 20 63 6f 6e 74 61 69 6e 65 64 20 .need.not.examine.the.contained.
eaa0 65 78 70 72 65 73 73 69 6f 6e 20 28 69 66 20 61 6e 79 29 20 2a 2f 00 09 09 63 61 73 65 20 54 5f expression.(if.any).*/...case.T_
eac0 52 65 73 54 61 72 67 65 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 ResTarget:....break;....loc.=.((
eae0 63 6f 6e 73 74 20 41 5f 41 72 72 61 79 45 78 70 72 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 const.A_ArrayExpr.*).expr)->loca
eb00 74 69 6f 6e 3b 00 09 09 09 2f 2a 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 70 6f 69 6e 74 73 20 tion;..../*.the.location.points.
eb20 61 74 20 41 52 52 41 59 20 6f 72 20 5b 2c 20 77 68 69 63 68 20 6d 75 73 74 20 62 65 20 6c 65 66 at.ARRAY.or.[,.which.must.be.lef
eb40 74 6d 6f 73 74 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 41 5f 41 72 72 61 79 45 78 70 72 3a 00 09 tmost.*/...case.T_A_ArrayExpr:..
eb60 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 4c 6f 63 61 ..break;....}...........exprLoca
eb80 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 66 63 2d 3e 61 72 67 73 29 29 3b 00 09 09 09 09 6c 6f tion((Node.*).fc->args));.....lo
eba0 63 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 66 63 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 09 09 c.=.leftmostLoc(fc->location,...
ebc0 09 09 2f 2a 20 28 77 65 20 61 73 73 75 6d 65 20 61 6e 79 20 4f 52 44 45 52 20 42 59 20 6e 6f 64 ../*.(we.assume.any.ORDER.BY.nod
ebe0 65 73 20 6d 75 73 74 20 62 65 20 74 6f 20 72 69 67 68 74 20 6f 66 20 6e 61 6d 65 29 20 2a 2f 00 es.must.be.to.right.of.name).*/.
ec00 09 09 09 09 2f 2a 20 63 6f 6e 73 69 64 65 72 20 62 6f 74 68 20 66 75 6e 63 74 69 6f 6e 20 6e 61 ..../*.consider.both.function.na
ec20 6d 65 20 61 6e 64 20 6c 65 66 74 6d 6f 73 74 20 61 72 67 20 2a 2f 00 00 09 09 09 09 63 6f 6e 73 me.and.leftmost.arg.*/......cons
ec40 74 20 46 75 6e 63 43 61 6c 6c 20 2a 66 63 20 3d 20 28 63 6f 6e 73 74 20 46 75 6e 63 43 61 6c 6c t.FuncCall.*fc.=.(const.FuncCall
ec60 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 43 61 6c 6c .*).expr;....{...case.T_FuncCall
ec80 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 41 5f 43 :....break;....loc.=.((const.A_C
eca0 6f 6e 73 74 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 onst.*).expr)->location;...case.
ecc0 54 5f 41 5f 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 20 3d 20 28 28 T_A_Const:....break;....loc.=.((
ece0 63 6f 6e 73 74 20 50 61 72 61 6d 52 65 66 20 2a 29 20 65 78 70 72 29 2d 3e 6c 6f 63 61 74 69 6f const.ParamRef.*).expr)->locatio
ed00 6e 3b 00 09 09 63 61 73 65 20 54 5f 50 61 72 61 6d 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 n;...case.T_ParamRef:....break;.
ed20 09 09 09 6c 6f 63 20 3d 20 28 28 63 6f 6e 73 74 20 43 6f 6c 75 6d 6e 52 65 66 20 2a 29 20 65 78 ...loc.=.((const.ColumnRef.*).ex
ed40 70 72 29 2d 3e 6c 6f 63 61 74 69 6f 6e 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 75 6d 6e 52 65 pr)->location;...case.T_ColumnRe
ed60 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 09 09 09 20 20 65 78 70 72 f:....break;....}...........expr
ed80 4c 6f 63 61 74 69 6f 6e 28 61 65 78 70 72 2d 3e 6c 65 78 70 72 29 29 3b 00 09 09 09 09 6c 6f 63 Location(aexpr->lexpr));.....loc
eda0 20 3d 20 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 61 65 78 70 72 2d 3e 6c 6f 63 61 74 69 6f 6e 2c 00 .=.leftmostLoc(aexpr->location,.
edc0 09 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 72 69 67 68 74 20 6f 70 65 72 61 6e 64 20 63 ..../*.we.assume.right.operand.c
ede0 61 6e 27 74 20 62 65 20 74 6f 20 6c 65 66 74 20 6f 66 20 6f 70 65 72 61 74 6f 72 20 2a 2f 00 09 an't.be.to.left.of.operator.*/..
ee00 09 09 09 2f 2a 20 75 73 65 20 6c 65 66 74 6d 6f 73 74 20 6f 66 20 6f 70 65 72 61 74 6f 72 20 6f .../*.use.leftmost.of.operator.o
ee20 72 20 6c 65 66 74 20 6f 70 65 72 61 6e 64 20 28 69 66 20 61 6e 79 29 20 2a 2f 00 00 09 09 09 09 r.left.operand.(if.any).*/......
ee40 63 6f 6e 73 74 20 41 5f 45 78 70 72 20 2a 61 65 78 70 72 20 3d 20 28 63 6f 6e 73 74 20 41 5f 45 const.A_Expr.*aexpr.=.(const.A_E
ee60 78 70 72 20 2a 29 20 65 78 70 72 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 5f 45 78 70 xpr.*).expr;....{...case.T_A_Exp
ee80 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 7d 00 09 09 09 09 09 09 62 72 r:....break;....}.....}.......br
eea0 65 61 6b 3b 00 09 09 09 09 09 69 66 20 28 6c 6f 63 20 3e 3d 20 30 29 00 09 09 09 09 09 6c 6f 63 eak;......if.(loc.>=.0)......loc
eec0 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 6c 66 69 72 73 74 28 .=.exprLocation((Node.*).lfirst(
eee0 6c 63 29 29 3b 00 09 09 09 09 7b 00 09 09 09 09 66 6f 72 65 61 63 68 28 6c 63 2c 20 28 63 6f 6e lc));.....{.....foreach(lc,.(con
ef00 73 74 20 4c 69 73 74 20 2a 29 20 65 78 70 72 29 00 09 09 09 09 6c 6f 63 20 3d 20 2d 31 3b 09 09 st.List.*).expr).....loc.=.-1;..
ef20 2f 2a 20 6a 75 73 74 20 74 6f 20 73 75 70 70 72 65 73 73 20 63 6f 6d 70 69 6c 65 72 20 77 61 72 /*.just.to.suppress.compiler.war
ef40 6e 69 6e 67 20 2a 2f 00 00 09 09 09 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 6c 63 3b 00 09 09 09 ning.*/......ListCell...*lc;....
ef60 09 2f 2a 20 72 65 70 6f 72 74 20 6c 6f 63 61 74 69 6f 6e 20 6f 66 20 66 69 72 73 74 20 6c 69 73 ./*.report.location.of.first.lis
ef80 74 20 6d 65 6d 62 65 72 20 74 68 61 74 20 68 61 73 20 61 20 6c 6f 63 61 74 69 6f 6e 20 2a 2f 00 t.member.that.has.a.location.*/.
efa0 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4c 69 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ...{...case.T_List:....break;...
efc0 09 6c 6f 63 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 .loc.=.exprLocation((Node.*).((c
efe0 6f 6e 73 74 20 49 6e 74 6f 43 6c 61 75 73 65 20 2a 29 20 65 78 70 72 29 2d 3e 72 65 6c 29 3b 00 onst.IntoClause.*).expr)->rel);.
f000 61 64 00 00 20 00 00 00 ac 01 00 00 00 10 00 00 5c 00 00 00 00 00 00 00 ba 0f 00 00 b0 0f 00 00 ad..............\...............
f020 a5 0f 00 00 6f 0f 00 00 62 0f 00 00 58 0f 00 00 55 0f 00 00 48 0f 00 00 46 0f 00 00 45 0f 00 00 ....o...b...X...U...H...F...E...
f040 42 0f 00 00 18 0f 00 00 15 0f 00 00 cf 0e 00 00 cb 0e 00 00 c0 0e 00 00 a0 0e 00 00 9e 0e 00 00 B...............................
f060 8f 0e 00 00 80 0e 00 00 6c 0e 00 00 5d 0e 00 00 57 0e 00 00 3d 0e 00 00 3b 0e 00 00 3a 0e 00 00 ........l...]...W...=...;...:...
f080 39 0e 00 00 36 0e 00 00 0a 0e 00 00 07 0e 00 00 c0 0d 00 00 78 0d 00 00 2f 0d 00 00 e6 0c 00 00 9...6...............x.../.......
f0a0 9d 0c 00 00 54 0c 00 00 07 0c 00 00 c2 0b 00 00 79 0b 00 00 75 0b 00 00 74 0b 00 00 71 0b 00 00 ....T...........y...u...t...q...
f0c0 27 0b 00 00 dd 0a 00 00 9a 0a 00 00 6f 0a 00 00 6c 0a 00 00 39 0a 00 00 34 0a 00 00 1e 0a 00 00 '...........o...l...9...4.......
f0e0 0b 0a 00 00 cd 09 00 00 b5 09 00 00 af 09 00 00 85 09 00 00 7f 09 00 00 62 09 00 00 5c 09 00 00 ........................b...\...
f100 2b 09 00 00 25 09 00 00 ef 08 00 00 a9 08 00 00 a4 08 00 00 a1 08 00 00 58 08 00 00 0e 08 00 00 +...%...................X.......
f120 cd 07 00 00 7f 07 00 00 3a 07 00 00 eb 06 00 00 b7 06 00 00 b4 06 00 00 6a 06 00 00 1f 06 00 00 ........:...............j.......
f140 d5 05 00 00 89 05 00 00 55 05 00 00 52 05 00 00 0c 05 00 00 c0 04 00 00 72 04 00 00 23 04 00 00 ........U...R...........r...#...
f160 d8 03 00 00 8f 03 00 00 43 03 00 00 27 03 00 00 24 03 00 00 da 02 00 00 8c 02 00 00 3f 02 00 00 ........C...'...$...........?...
f180 f3 01 00 00 ac 01 00 00 ab 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f1a0 00 00 00 00 00 00 00 00 00 00 00 00 20 2a 20 61 6e 64 20 72 65 74 75 72 6e 73 20 22 66 61 6c 73 .............*.and.returns."fals
f1c0 65 22 2e 20 20 54 68 65 20 6e 65 74 20 65 66 66 65 63 74 20 69 73 20 74 68 61 74 20 75 6e 6c 65 e"...The.net.effect.is.that.unle
f1e0 73 73 20 74 68 65 20 77 61 6c 6b 65 72 20 64 6f 65 73 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e ss.the.walker.does..*.expression
f200 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 69 74 73 65 6c 66 20 69 73 20 63 61 6c 6c 65 64 20 6f 6e _tree_walker.itself.is.called.on
f220 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 00 20 .a.Query.node,.it.does.nothing..
f240 2a 20 70 6c 61 6e 29 2e 20 20 49 74 20 77 69 6c 6c 20 61 6c 73 6f 20 63 61 6c 6c 20 74 68 65 20 *.plan)...It.will.also.call.the.
f260 77 61 6c 6b 65 72 20 6f 6e 20 74 68 65 20 73 75 62 2d 51 75 65 72 79 20 6e 6f 64 65 3b 20 68 6f walker.on.the.sub-Query.node;.ho
f280 77 65 76 65 72 2c 20 77 68 65 6e 00 20 2a 20 69 6e 74 6f 20 74 68 65 20 22 74 65 73 74 65 78 70 wever,.when..*.into.the."testexp
f2a0 72 22 20 73 75 62 74 72 65 65 20 28 77 68 69 63 68 20 69 73 20 61 6e 20 65 78 70 72 65 73 73 69 r".subtree.(which.is.an.expressi
f2c0 6f 6e 20 62 65 6c 6f 6e 67 69 6e 67 20 74 6f 20 74 68 65 20 6f 75 74 65 72 00 20 2a 20 65 78 70 on.belonging.to.the.outer..*.exp
f2e0 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 77 69 6c 6c 20 68 61 6e 64 6c 65 20 ression_tree_walker.will.handle.
f300 53 75 62 4c 69 6e 6b 20 6e 6f 64 65 73 20 62 79 20 72 65 63 75 72 73 69 6e 67 20 6e 6f 72 6d 61 SubLink.nodes.by.recursing.norma
f320 6c 6c 79 00 20 2a 00 20 2a 20 77 69 74 68 6f 75 74 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 64 lly..*..*.without.additional.cod
f340 65 2e 00 20 2a 20 68 61 6e 64 6c 65 64 2c 20 73 6f 20 74 68 61 74 20 71 75 65 72 79 20 6a 6f 69 e...*.handled,.so.that.query.joi
f360 6e 74 72 65 65 73 20 61 6e 64 20 73 65 74 4f 70 65 72 61 74 69 6f 6e 20 74 72 65 65 73 20 63 61 ntrees.and.setOperation.trees.ca
f380 6e 20 62 65 20 70 72 6f 63 65 73 73 65 64 00 20 2a 20 41 6c 73 6f 2c 20 52 61 6e 67 65 54 62 6c n.be.processed..*.Also,.RangeTbl
f3a0 52 65 66 2c 20 46 72 6f 6d 45 78 70 72 2c 20 4a 6f 69 6e 45 78 70 72 2c 20 61 6e 64 20 53 65 74 Ref,.FromExpr,.JoinExpr,.and.Set
f3c0 4f 70 65 72 61 74 69 6f 6e 53 74 6d 74 20 6e 6f 64 65 73 20 61 72 65 00 20 2a 20 73 6f 20 74 68 OperationStmt.nodes.are..*.so.th
f3e0 61 74 20 61 20 73 63 61 6e 20 6f 66 20 61 20 74 61 72 67 65 74 20 6c 69 73 74 20 63 61 6e 20 62 at.a.scan.of.a.target.list.can.b
f400 65 20 68 61 6e 64 6c 65 64 20 77 69 74 68 6f 75 74 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 64 e.handled.without.additional.cod
f420 65 2e 00 20 2a 20 77 69 6c 6c 20 68 61 76 65 20 4c 69 73 74 20 73 74 72 75 63 74 75 72 65 20 61 e...*.will.have.List.structure.a
f440 74 20 74 68 65 20 74 6f 70 20 6c 65 76 65 6c 2c 20 61 6e 64 20 69 74 20 68 61 6e 64 6c 65 73 20 t.the.top.level,.and.it.handles.
f460 54 61 72 67 65 74 45 6e 74 72 79 20 6e 6f 64 65 73 00 20 2a 20 73 74 61 67 65 2e 20 20 49 6e 20 TargetEntry.nodes..*.stage...In.
f480 70 61 72 74 69 63 75 6c 61 72 2c 20 69 74 20 68 61 6e 64 6c 65 73 20 4c 69 73 74 20 6e 6f 64 65 particular,.it.handles.List.node
f4a0 73 20 73 69 6e 63 65 20 61 20 63 6e 66 2d 69 66 69 65 64 20 71 75 61 6c 20 63 6c 61 75 73 65 00 s.since.a.cnf-ified.qual.clause.
f4c0 20 2a 20 6e 6f 72 6d 61 6c 6c 79 20 66 6f 75 6e 64 20 69 6e 20 74 61 72 67 65 74 20 6c 69 73 74 .*.normally.found.in.target.list
f4e0 73 20 61 6e 64 20 71 75 61 6c 69 66 69 65 72 20 63 6c 61 75 73 65 73 20 64 75 72 69 6e 67 20 74 s.and.qualifier.clauses.during.t
f500 68 65 20 70 6c 61 6e 6e 69 6e 67 00 20 2a 20 54 68 65 20 6e 6f 64 65 20 74 79 70 65 73 20 68 61 he.planning..*.The.node.types.ha
f520 6e 64 6c 65 64 20 62 79 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 ndled.by.expression_tree_walker.
f540 69 6e 63 6c 75 64 65 20 61 6c 6c 20 74 68 6f 73 65 00 20 2a 00 20 2a 20 69 66 66 20 6e 6f 20 69 include.all.those..*..*.iff.no.i
f560 6e 76 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 61 6c 6b 65 72 20 72 65 74 75 72 6e 65 64 nvocation.of.the.walker.returned
f580 20 22 74 72 75 65 22 2e 00 20 2a 20 68 61 73 20 66 6f 75 6e 64 20 77 68 61 74 20 69 74 20 63 61 ."true"...*.has.found.what.it.ca
f5a0 6d 65 20 66 6f 72 2e 20 20 22 66 61 6c 73 65 22 20 69 73 20 72 65 74 75 72 6e 65 64 20 74 6f 20 me.for..."false".is.returned.to.
f5c0 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 20 63 61 6c 6c 65 72 00 20 2a 20 63 61 6c 6c 65 72 2e 20 the.top-level.caller..*.caller..
f5e0 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 68 6f 72 74 2d 63 69 72 63 75 .This.can.be.used.to.short-circu
f600 69 74 20 74 68 65 20 74 72 61 76 65 72 73 61 6c 20 69 66 20 74 68 65 20 77 61 6c 6b 65 72 00 20 it.the.traversal.if.the.walker..
f620 2a 20 22 74 72 75 65 22 20 74 6f 20 61 62 6f 72 74 20 74 68 65 20 77 61 6c 6b 20 61 6e 64 20 69 *."true".to.abort.the.walk.and.i
f640 6d 6d 65 64 69 61 74 65 6c 79 20 72 65 74 75 72 6e 20 22 74 72 75 65 22 20 74 6f 20 74 68 65 20 mmediately.return."true".to.the.
f660 74 6f 70 2d 6c 65 76 65 6c 00 20 2a 20 54 68 65 20 77 61 6c 6b 65 72 20 72 6f 75 74 69 6e 65 20 top-level..*.The.walker.routine.
f680 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 22 66 61 6c 73 65 22 20 74 6f 20 63 6f 6e 74 69 6e 75 should.return."false".to.continu
f6a0 65 20 74 68 65 20 74 72 65 65 20 77 61 6c 6b 2c 20 6f 72 00 20 2a 00 20 2a 20 6e 6f 64 65 20 6f e.the.tree.walk,.or..*..*.node.o
f6c0 66 20 74 68 65 20 74 72 65 65 2c 20 61 6e 64 20 74 68 65 6e 20 65 78 61 6d 69 6e 65 73 20 74 68 f.the.tree,.and.then.examines.th
f6e0 65 20 72 65 73 75 6c 74 73 2e 00 20 2a 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 20 61 70 70 72 6f e.results...*.fills.in.the.appro
f700 70 72 69 61 74 65 20 63 6f 6e 74 65 78 74 20 73 74 72 75 63 74 2c 20 63 61 6c 6c 73 20 6d 79 5f priate.context.struct,.calls.my_
f720 77 61 6c 6b 65 72 20 77 69 74 68 20 74 68 65 20 74 6f 70 2d 6c 65 76 65 6c 00 20 2a 20 6f 66 20 walker.with.the.top-level..*.of.
f740 6d 79 5f 77 61 6c 6b 65 72 2e 20 20 54 68 65 20 74 72 65 65 20 77 61 6c 6b 20 69 73 20 73 74 61 my_walker...The.tree.walk.is.sta
f760 72 74 65 64 20 66 72 6f 6d 20 61 20 73 65 74 75 70 20 72 6f 75 74 69 6e 65 20 74 68 61 74 00 20 rted.from.a.setup.routine.that..
f780 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 2c 20 62 75 74 20 69 74 *.expression_tree_walker,.but.it
f7a0 20 69 73 20 70 61 73 73 65 64 20 64 6f 77 6e 20 74 6f 20 72 65 63 75 72 73 69 76 65 20 73 75 62 .is.passed.down.to.recursive.sub
f7c0 2d 69 6e 76 6f 63 61 74 69 6f 6e 73 00 20 2a 20 67 61 74 68 65 72 65 64 20 62 79 20 74 68 65 20 -invocations..*.gathered.by.the.
f7e0 77 61 6c 6b 65 72 2c 20 74 6f 6f 2e 20 20 54 68 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e walker,.too...This.argument.is.n
f800 6f 74 20 74 6f 75 63 68 65 64 20 62 79 00 20 2a 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68 65 ot.touched.by..*.information.the
f820 20 77 61 6c 6b 65 72 20 72 6f 75 74 69 6e 65 20 6e 65 65 64 73 20 2d 2d 2d 20 69 74 20 63 61 6e .walker.routine.needs.---.it.can
f840 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 74 75 72 6e 20 64 61 74 61 00 20 2a 20 54 68 65 20 22 .be.used.to.return.data..*.The."
f860 63 6f 6e 74 65 78 74 22 20 61 72 67 75 6d 65 6e 74 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 73 74 context".argument.points.to.a.st
f880 72 75 63 74 20 74 68 61 74 20 68 6f 6c 64 73 20 77 68 61 74 65 76 65 72 20 63 6f 6e 74 65 78 74 ruct.that.holds.whatever.context
f8a0 00 20 2a 00 20 2a 20 7d 00 20 2a 09 09 72 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 ..*..*.}..*..return.expression_t
f8c0 72 65 65 5f 77 61 6c 6b 65 72 28 6e 6f 64 65 2c 20 6d 79 5f 77 61 6c 6b 65 72 2c 20 28 76 6f 69 ree_walker(node,.my_walker,.(voi
f8e0 64 20 2a 29 20 63 6f 6e 74 65 78 74 29 3b 00 20 2a 09 09 2f 2f 20 66 6f 72 20 61 6e 79 20 6e 6f d.*).context);..*..//.for.any.no
f900 64 65 20 74 79 70 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 6c 79 20 70 72 6f 63 65 73 73 65 64 2c de.type.not.specially.processed,
f920 20 64 6f 3a 00 20 2a 09 09 7d 00 20 2a 09 09 09 2e 2e 2e 20 64 6f 20 73 70 65 63 69 61 6c 20 61 .do:..*..}..*.......do.special.a
f940 63 74 69 6f 6e 73 20 66 6f 72 20 6f 74 68 65 72 20 6e 6f 64 65 20 74 79 70 65 73 00 20 2a 09 09 ctions.for.other.node.types..*..
f960 7b 00 20 2a 09 09 65 6c 73 65 20 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 2e 2e 2e 29 29 00 20 {..*..else.if.(IsA(node,....))..
f980 2a 09 09 7d 00 20 2a 09 09 09 2e 2e 2e 20 64 6f 20 73 70 65 63 69 61 6c 20 61 63 74 69 6f 6e 73 *..}..*.......do.special.actions
f9a0 20 66 6f 72 20 56 61 72 20 6e 6f 64 65 73 00 20 2a 09 09 7b 00 20 2a 09 09 69 66 20 28 49 73 41 .for.Var.nodes..*..{..*..if.(IsA
f9c0 28 6e 6f 64 65 2c 20 56 61 72 29 29 00 20 2a 09 09 2f 2f 20 63 68 65 63 6b 20 66 6f 72 20 6e 6f (node,.Var))..*..//.check.for.no
f9e0 64 65 73 20 74 68 61 74 20 73 70 65 63 69 61 6c 20 77 6f 72 6b 20 69 73 20 72 65 71 75 69 72 65 des.that.special.work.is.require
fa00 64 20 66 6f 72 2c 20 65 67 3a 00 20 2a 09 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 20 2a d.for,.eg:..*...return.false;..*
fa20 09 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 00 20 2a 20 7b 00 20 2a 20 62 6f 6f 6c ..if.(node.==.NULL)..*.{..*.bool
fa40 20 6d 79 5f 77 61 6c 6b 65 72 20 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 20 6d 79 5f 73 74 72 75 63 .my_walker.(Node.*node,.my_struc
fa60 74 20 2a 63 6f 6e 74 65 78 74 29 00 20 2a 00 20 2a 20 41 20 77 61 6c 6b 65 72 20 72 6f 75 74 69 t.*context)..*..*.A.walker.routi
fa80 6e 65 20 73 68 6f 75 6c 64 20 6c 6f 6f 6b 20 6c 69 6b 65 20 74 68 69 73 3a 00 20 2a 20 74 68 61 ne.should.look.like.this:..*.tha
faa0 74 20 6d 6f 64 69 66 79 20 6e 6f 64 65 73 20 69 6e 2d 70 6c 61 63 65 20 62 75 74 20 6e 65 76 65 t.modify.nodes.in-place.but.neve
fac0 72 20 61 64 64 2f 64 65 6c 65 74 65 2f 72 65 70 6c 61 63 65 20 6e 6f 64 65 73 29 2e 00 20 2a 20 r.add/delete/replace.nodes)...*.
fae0 61 20 74 72 65 65 20 69 6e 20 61 20 72 65 61 64 2d 6f 6e 6c 79 20 66 61 73 68 69 6f 6e 20 28 61 a.tree.in.a.read-only.fashion.(a
fb00 6c 74 68 6f 75 67 68 20 69 74 20 77 69 6c 6c 20 61 6c 73 6f 20 77 6f 72 6b 20 66 6f 72 20 72 6f lthough.it.will.also.work.for.ro
fb20 75 74 69 6e 65 73 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 utines..*.expression_tree_walker
fb40 28 29 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 75 70 70 6f 72 74 20 72 6f 75 74 69 6e ().is.designed.to.support.routin
fb60 65 73 20 74 68 61 74 20 74 72 61 76 65 72 73 65 00 2f 2a 00 00 20 2a 2f 00 20 2a 20 74 77 6f 20 es.that.traverse./*...*/..*.two.
fb80 76 65 72 73 69 6f 6e 73 3a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 versions:.expression_tree_walker
fba0 28 29 20 61 6e 64 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 28 29 ().and.expression_tree_mutator()
fbc0 2e 00 20 2a 20 6c 6f 67 69 63 20 74 6f 20 63 6f 6e 73 6f 6c 69 64 61 74 65 20 74 68 65 20 72 65 ...*.logic.to.consolidate.the.re
fbe0 64 75 6e 64 61 6e 74 20 22 62 6f 69 6c 65 72 70 6c 61 74 65 22 20 63 6f 64 65 2e 20 20 54 68 65 dundant."boilerplate".code...The
fc00 72 65 20 61 72 65 00 20 2a 20 6e 6f 6e 2d 70 72 69 6d 69 74 69 76 65 20 6e 6f 64 65 20 74 79 70 re.are..*.non-primitive.node.typ
fc20 65 73 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 77 65 20 6e 6f 77 20 70 72 6f 76 69 64 65 20 67 es...Therefore,.we.now.provide.g
fc40 65 6e 65 72 69 63 20 74 72 65 65 2d 77 61 6c 6b 69 6e 67 00 20 2a 20 63 61 72 65 20 61 62 6f 75 eneric.tree-walking..*.care.abou
fc60 74 20 6f 74 68 65 72 20 74 79 70 65 73 20 65 78 63 65 70 74 20 69 6e 73 6f 66 61 72 20 61 73 20 t.other.types.except.insofar.as.
fc80 74 68 65 79 20 68 61 76 65 20 74 6f 20 72 65 63 75 72 73 65 20 74 68 72 6f 75 67 68 00 20 2a 20 they.have.to.recurse.through..*.
fca0 74 68 65 73 65 20 72 6f 75 74 69 6e 65 73 20 6f 6e 6c 79 20 61 63 74 75 61 6c 6c 79 20 63 61 72 these.routines.only.actually.car
fcc0 65 20 61 62 6f 75 74 20 63 65 72 74 61 69 6e 20 6e 6f 64 65 20 74 79 70 65 73 2c 20 61 6e 64 20 e.about.certain.node.types,.and.
fce0 64 6f 6e 27 74 00 20 2a 20 72 6f 75 74 69 6e 65 20 6e 65 67 6c 65 63 74 69 6e 67 20 74 6f 20 73 don't..*.routine.neglecting.to.s
fd00 75 70 70 6f 72 74 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6e 6f 64 65 20 74 79 70 65 2e 20 20 upport.a.particular.node.type...
fd20 49 6e 20 6d 6f 73 74 20 63 61 73 65 73 2c 00 20 2a 20 61 20 70 61 69 6e 20 74 6f 20 6d 61 69 6e In.most.cases,..*.a.pain.to.main
fd40 74 61 69 6e 2c 20 61 6e 64 20 77 65 20 66 72 65 71 75 65 6e 74 6c 79 20 68 61 64 20 62 75 67 73 tain,.and.we.frequently.had.bugs
fd60 20 64 75 65 20 74 6f 20 73 6f 6d 65 20 70 61 72 74 69 63 75 6c 61 72 00 20 2a 20 75 6e 64 65 72 .due.to.some.particular..*.under
fd80 73 74 6f 6f 64 20 68 6f 77 20 74 6f 20 72 65 63 75 72 73 65 20 74 68 72 6f 75 67 68 20 61 6e 20 stood.how.to.recurse.through.an.
fda0 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 20 74 72 65 65 2e 20 20 54 68 61 74 20 77 61 73 00 expression.node.tree...That.was.
fdc0 20 2a 20 57 65 20 75 73 65 64 20 74 6f 20 68 61 76 65 20 6e 65 61 72 2d 64 75 70 6c 69 63 61 74 .*.We.used.to.have.near-duplicat
fde0 65 20 63 6f 64 65 20 69 6e 20 6d 61 6e 79 20 64 69 66 66 65 72 65 6e 74 20 72 6f 75 74 69 6e 65 e.code.in.many.different.routine
fe00 73 20 74 68 61 74 00 20 2a 00 20 2a 20 53 74 61 6e 64 61 72 64 20 65 78 70 72 65 73 73 69 6f 6e s.that..*..*.Standard.expression
fe20 2d 74 72 65 65 20 77 61 6c 6b 69 6e 67 20 73 75 70 70 6f 72 74 00 2f 2a 00 00 00 7d 00 09 09 72 -tree.walking.support./*...}...r
fe40 65 74 75 72 6e 20 4d 69 6e 28 6c 6f 63 31 2c 20 6c 6f 63 32 29 3b 00 09 65 6c 73 65 00 09 09 72 eturn.Min(loc1,.loc2);..else...r
fe60 65 74 75 72 6e 20 6c 6f 63 31 3b 00 09 65 6c 73 65 20 69 66 20 28 6c 6f 63 32 20 3c 20 30 29 00 eturn.loc1;..else.if.(loc2.<.0).
fe80 09 09 72 65 74 75 72 6e 20 6c 6f 63 32 3b 00 09 69 66 20 28 6c 6f 63 31 20 3c 20 30 29 00 7b 00 ..return.loc2;..if.(loc1.<.0).{.
fea0 6c 65 66 74 6d 6f 73 74 4c 6f 63 28 69 6e 74 20 6c 6f 63 31 2c 20 69 6e 74 20 6c 6f 63 32 29 00 leftmostLoc(int.loc1,.int.loc2).
fec0 73 74 61 74 69 63 20 69 6e 74 00 20 2a 2f 00 20 2a 20 54 61 6b 65 20 74 68 65 20 6d 69 6e 69 6d static.int..*/..*.Take.the.minim
fee0 75 6d 20 6f 66 20 74 77 6f 20 70 61 72 73 65 20 6c 6f 63 61 74 69 6f 6e 20 76 61 6c 75 65 73 2c um.of.two.parse.location.values,
ff00 20 62 75 74 20 69 67 6e 6f 72 65 20 75 6e 6b 6e 6f 77 6e 73 00 20 2a 00 20 2a 20 6c 65 66 74 6d .but.ignore.unknowns..*..*.leftm
ff20 6f 73 74 4c 6f 63 20 2d 20 73 75 70 70 6f 72 74 20 66 6f 72 20 65 78 70 72 4c 6f 63 61 74 69 6f ostLoc.-.support.for.exprLocatio
ff40 6e 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 6c 6f 63 3b 00 09 7d 00 09 09 09 62 72 65 61 6b n./*..}..return.loc;..}....break
ff60 3b 00 09 09 09 6c 6f 63 20 3d 20 2d 31 3b 00 09 09 09 2f 2a 20 66 6f 72 20 61 6e 79 20 6f 74 68 ;....loc.=.-1;..../*.for.any.oth
ff80 65 72 20 6e 6f 64 65 20 74 79 70 65 20 69 74 27 73 20 6a 75 73 74 20 75 6e 6b 6e 6f 77 6e 2e 2e er.node.type.it's.just.unknown..
ffa0 2e 20 2a 2f 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 6c 6f 63 ..*/...default:....break;....loc
ffc0 20 3d 20 65 78 70 72 4c 6f 63 61 74 69 6f 6e 28 28 4e 6f 64 65 20 2a 29 20 28 28 63 6f 6e 73 74 .=.exprLocation((Node.*).((const
ffe0 20 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a 29 20 65 78 70 72 29 2d 3e 65 78 70 72 29 3b 00 .InferenceElem.*).expr)->expr);.
10000 61 64 00 00 06 00 00 00 ee 01 00 00 00 10 00 00 73 00 00 00 00 00 00 00 b3 0f 00 00 65 0f 00 00 ad..............s...........e...
10020 16 0f 00 00 c9 0e 00 00 7c 0e 00 00 51 0e 00 00 4e 0e 00 00 34 0e 00 00 2e 0e 00 00 0c 0e 00 00 ........|...Q...N...4...........
10040 c8 0d 00 00 9c 0d 00 00 7c 0d 00 00 68 0d 00 00 62 0d 00 00 5f 0d 00 00 16 0d 00 00 d4 0c 00 00 ........|...h...b..._...........
10060 d1 0c 00 00 87 0c 00 00 38 0c 00 00 ea 0b 00 00 9c 0b 00 00 4f 0b 00 00 1e 0b 00 00 1a 0b 00 00 ........8...........O...........
10080 19 0b 00 00 14 0b 00 00 f1 0a 00 00 d6 0a 00 00 bf 0a 00 00 bd 0a 00 00 aa 0a 00 00 a9 0a 00 00 ................................
100a0 a5 0a 00 00 5c 0a 00 00 35 0a 00 00 31 0a 00 00 e8 09 00 00 a5 09 00 00 83 09 00 00 7e 09 00 00 ....\...5...1...............~...
100c0 6b 09 00 00 5b 09 00 00 5a 09 00 00 14 09 00 00 fe 08 00 00 fd 08 00 00 e5 08 00 00 e2 08 00 00 k...[...Z.......................
100e0 d4 08 00 00 c4 08 00 00 b4 08 00 00 96 08 00 00 7f 08 00 00 68 08 00 00 50 08 00 00 3a 08 00 00 ....................h...P...:...
10100 20 08 00 00 e6 07 00 00 dc 07 00 00 c2 07 00 00 85 07 00 00 74 07 00 00 6f 07 00 00 48 07 00 00 ....................t...o...H...
10120 47 07 00 00 24 07 00 00 e7 06 00 00 c8 06 00 00 b6 06 00 00 82 06 00 00 63 06 00 00 51 06 00 00 G...$...................c...Q...
10140 19 06 00 00 fa 05 00 00 e8 05 00 00 ad 05 00 00 8e 05 00 00 7c 05 00 00 49 05 00 00 37 05 00 00 ....................|...I...7...
10160 32 05 00 00 28 05 00 00 11 05 00 00 0c 05 00 00 d8 04 00 00 d7 04 00 00 9f 04 00 00 80 04 00 00 2...(...........................
10180 6e 04 00 00 69 04 00 00 5f 04 00 00 4a 04 00 00 45 04 00 00 19 04 00 00 18 04 00 00 f5 03 00 00 n...i..._...J...E...............
101a0 c1 03 00 00 a2 03 00 00 90 03 00 00 5d 03 00 00 4b 03 00 00 46 03 00 00 3c 03 00 00 29 03 00 00 ............]...K...F...<...)...
101c0 24 03 00 00 fa 02 00 00 f9 02 00 00 bc 02 00 00 7d 02 00 00 5e 02 00 00 4c 02 00 00 0d 02 00 00 $...............}...^...L.......
101e0 ee 01 00 00 ed 01 00 00 00 00 00 00 00 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 ...........................walke
10200 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f r,.context)).....if.(expression_
10220 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 61 72 65 66 2d 3e 72 65 66 6c 6f tree_walker((Node.*).aref->reflo
10240 77 65 72 69 6e 64 65 78 70 72 2c 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 werindexpr,......return.true;...
10260 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 ...........walker,.context))....
10280 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 .if.(expression_tree_walker((Nod
102a0 65 20 2a 29 20 61 72 65 66 2d 3e 72 65 66 75 70 70 65 72 69 6e 64 65 78 70 72 2c 00 09 09 09 09 e.*).aref->refupperindexpr,.....
102c0 2f 2a 20 72 65 63 75 72 73 65 20 64 69 72 65 63 74 6c 79 20 66 6f 72 20 75 70 70 65 72 2f 6c 6f /*.recurse.directly.for.upper/lo
102e0 77 65 72 20 61 72 72 61 79 20 69 6e 64 65 78 20 6c 69 73 74 73 20 2a 2f 00 00 09 09 09 09 41 72 wer.array.index.lists.*/......Ar
10300 72 61 79 52 65 66 20 20 20 2a 61 72 65 66 20 3d 20 28 41 72 72 61 79 52 65 66 20 2a 29 20 6e 6f rayRef...*aref.=.(ArrayRef.*).no
10320 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 52 65 66 3a 00 09 09 09 62 de;....{...case.T_ArrayRef:....b
10340 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 reak;....}......return.true;....
10360 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 67 67 66 69 .if.(walker((Node.*).expr->aggfi
10380 6c 74 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 lter,.context))......return.true
103a0 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 ;..............walker,.context))
103c0 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 .....if.(expression_tree_walker(
103e0 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 72 67 73 2c 00 09 09 09 09 2f 2a 20 72 65 63 75 (Node.*).expr->args,...../*.recu
10400 72 73 65 20 64 69 72 65 63 74 6c 79 20 6f 6e 20 4c 69 73 74 20 2a 2f 00 00 09 09 09 09 57 69 6e rse.directly.on.List.*/......Win
10420 64 6f 77 46 75 6e 63 20 2a 65 78 70 72 20 3d 20 28 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 6e dowFunc.*expr.=.(WindowFunc.*).n
10440 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 ode;....{...case.T_WindowFunc:..
10460 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 ..break;....}......return.true;.
10480 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 .............walker,.context))..
104a0 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e ...if.(expression_tree_walker((N
104c0 6f 64 65 20 2a 29 20 67 72 6f 75 70 69 6e 67 2d 3e 61 72 67 73 2c 00 00 09 09 09 09 47 72 6f 75 ode.*).grouping->args,......Grou
104e0 70 69 6e 67 46 75 6e 63 20 2a 67 72 6f 75 70 69 6e 67 20 3d 20 28 47 72 6f 75 70 69 6e 67 46 75 pingFunc.*grouping.=.(GroupingFu
10500 6e 63 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 nc.*).node;....{...case.T_Groupi
10520 6e 67 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 ngFunc:....break;....}......retu
10540 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 rn.true;.....if.(walker((Node.*)
10560 20 65 78 70 72 2d 3e 61 67 67 66 69 6c 74 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 .expr->aggfilter,.context)).....
10580 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 .return.true;..............walke
105a0 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f r,.context)).....if.(expression_
105c0 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 67 67 64 69 tree_walker((Node.*).expr->aggdi
105e0 73 74 69 6e 63 74 2c 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 stinct,......return.true;.......
10600 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 .......walker,.context)).....if.
10620 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 (expression_tree_walker((Node.*)
10640 20 65 78 70 72 2d 3e 61 67 67 6f 72 64 65 72 2c 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 .expr->aggorder,......return.tru
10660 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 e;..............walker,.context)
10680 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 ).....if.(expression_tree_walker
106a0 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 72 67 73 2c 00 09 09 09 09 09 72 65 74 75 72 ((Node.*).expr->args,......retur
106c0 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e n.true;..............walker,.con
106e0 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 text)).....if.(expression_tree_w
10700 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 67 67 64 69 72 65 63 74 61 72 alker((Node.*).expr->aggdirectar
10720 67 73 2c 00 09 09 09 09 2f 2a 20 72 65 63 75 72 73 65 20 64 69 72 65 63 74 6c 79 20 6f 6e 20 4c gs,...../*.recurse.directly.on.L
10740 69 73 74 20 2a 2f 00 00 09 09 09 09 41 67 67 72 65 66 09 20 20 20 2a 65 78 70 72 20 3d 20 28 41 ist.*/......Aggref....*expr.=.(A
10760 67 67 72 65 66 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 67 67 ggref.*).node;....{...case.T_Agg
10780 72 65 66 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 57 69 74 68 43 68 65 63 ref:....return.walker(((WithChec
107a0 6b 4f 70 74 69 6f 6e 20 2a 29 20 6e 6f 64 65 29 2d 3e 71 75 61 6c 2c 20 63 6f 6e 74 65 78 74 29 kOption.*).node)->qual,.context)
107c0 3b 00 09 09 63 61 73 65 20 54 5f 57 69 74 68 43 68 65 63 6b 4f 70 74 69 6f 6e 3a 00 09 09 09 62 ;...case.T_WithCheckOption:....b
107e0 72 65 61 6b 3b 00 09 09 09 2f 2a 20 70 72 69 6d 69 74 69 76 65 20 6e 6f 64 65 20 74 79 70 65 73 reak;..../*.primitive.node.types
10800 20 77 69 74 68 20 6e 6f 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 62 6e 6f 64 65 73 20 2a 2f 00 .with.no.expression.subnodes.*/.
10820 09 09 63 61 73 65 20 54 5f 53 6f 72 74 47 72 6f 75 70 43 6c 61 75 73 65 3a 00 09 09 63 61 73 65 ..case.T_SortGroupClause:...case
10840 20 54 5f 52 61 6e 67 65 54 62 6c 52 65 66 3a 00 09 09 63 61 73 65 20 54 5f 43 75 72 72 65 6e 74 .T_RangeTblRef:...case.T_Current
10860 4f 66 45 78 70 72 3a 00 09 09 63 61 73 65 20 54 5f 53 65 74 54 6f 44 65 66 61 75 6c 74 3a 00 09 OfExpr:...case.T_SetToDefault:..
10880 09 63 61 73 65 20 54 5f 43 61 73 65 54 65 73 74 45 78 70 72 3a 00 09 09 63 61 73 65 20 54 5f 43 .case.T_CaseTestExpr:...case.T_C
108a0 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 09 63 61 73 65 20 54 5f 50 61 72 oerceToDomainValue:...case.T_Par
108c0 61 6d 3a 00 09 09 63 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 09 09 63 61 73 65 20 54 5f 56 61 72 am:...case.T_Const:...case.T_Var
108e0 3a 00 09 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 65 54 61 67 28 6e 6f 64 65 29 29 00 00 09 63 :..{..switch.(nodeTag(node))...c
10900 68 65 63 6b 5f 73 74 61 63 6b 5f 64 65 70 74 68 28 29 3b 00 09 2f 2a 20 47 75 61 72 64 20 61 67 heck_stack_depth();../*.Guard.ag
10920 61 69 6e 73 74 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 64 75 65 20 74 6f 20 6f 76 65 72 ainst.stack.overflow.due.to.over
10940 6c 79 20 63 6f 6d 70 6c 65 78 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2a 2f 00 00 09 09 72 65 74 ly.complex.expressions.*/....ret
10960 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 00 09 20 urn.false;..if.(node.==.NULL)...
10980 2a 2f 00 09 20 2a 20 62 6f 74 68 65 72 69 6e 67 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 77 61 6c */...*.bothering.to.call.the.wal
109a0 6b 65 72 2e 00 09 20 2a 20 77 68 65 6e 20 77 65 20 65 78 70 65 63 74 20 61 20 4c 69 73 74 20 77 ker....*.when.we.expect.a.List.w
109c0 65 20 6a 75 73 74 20 72 65 63 75 72 73 65 20 64 69 72 65 63 74 6c 79 20 74 6f 20 73 65 6c 66 20 e.just.recurse.directly.to.self.
109e0 77 69 74 68 6f 75 74 00 09 20 2a 20 57 65 20 61 73 73 75 6d 65 20 74 68 61 74 20 74 68 65 20 77 without...*.We.assume.that.the.w
10a00 61 6c 6b 65 72 20 69 73 20 6e 6f 74 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 20 4c 69 73 74 20 alker.is.not.interested.in.List.
10a20 6e 6f 64 65 73 20 70 65 72 20 73 65 2c 20 73 6f 00 09 20 2a 00 09 20 2a 20 72 65 63 75 72 73 65 nodes.per.se,.so...*...*.recurse
10a40 20 69 6e 74 6f 20 61 6e 79 20 73 75 62 2d 6e 6f 64 65 73 20 69 74 20 68 61 73 2e 00 09 20 2a 20 .into.any.sub-nodes.it.has....*.
10a60 54 68 65 20 77 61 6c 6b 65 72 20 68 61 73 20 61 6c 72 65 61 64 79 20 76 69 73 69 74 65 64 20 74 The.walker.has.already.visited.t
10a80 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2c 20 61 6e 64 20 73 6f 20 77 65 20 6e 65 65 64 20 he.current.node,.and.so.we.need.
10aa0 6f 6e 6c 79 00 09 2f 2a 00 00 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 74 65 6d 70 3b 00 7b 00 09 only../*...ListCell...*temp;.{..
10ac0 09 09 09 09 20 20 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 00 09 09 09 09 09 20 20 20 62 6f .......void.*context).........bo
10ae0 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 29 2c 00 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 ol.(*walker).(),.expression_tree
10b00 5f 77 61 6c 6b 65 72 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 00 62 6f 6f 6c 00 00 20 2a 2f 00 20 2a _walker(Node.*node,.bool...*/..*
10b20 20 75 73 65 73 2c 20 62 75 74 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 62 65 20 72 65 76 69 73 69 .uses,.but.may.need.to.be.revisi
10b40 74 65 64 20 69 6e 20 66 75 74 75 72 65 2e 00 20 2a 20 73 75 62 73 65 6c 65 63 74 73 20 6f 66 20 ted.in.future...*.subselects.of.
10b60 61 6e 20 61 6c 72 65 61 64 79 2d 70 6c 61 6e 6e 65 64 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 an.already-planned.expression.tr
10b80 65 65 2e 20 20 54 68 69 73 20 69 73 20 4f 4b 20 66 6f 72 20 63 75 72 72 65 6e 74 00 20 2a 20 74 ee...This.is.OK.for.current..*.t
10ba0 68 65 72 65 20 69 73 20 6e 6f 20 6c 69 6e 6b 20 74 6f 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 here.is.no.link.to.the.original.
10bc0 51 75 65 72 79 2c 20 69 74 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 72 65 63 Query,.it.is.not.possible.to.rec
10be0 75 72 73 65 20 69 6e 74 6f 00 20 2a 20 74 68 65 20 6f 75 74 65 72 20 70 6c 61 6e 29 2e 20 20 49 urse.into..*.the.outer.plan)...I
10c00 74 20 77 69 6c 6c 20 6e 6f 74 20 74 6f 75 63 68 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 64 20 73 t.will.not.touch.the.completed.s
10c20 75 62 70 6c 61 6e 2c 20 68 6f 77 65 76 65 72 2e 20 20 53 69 6e 63 65 00 20 2a 20 69 6e 74 6f 20 ubplan,.however...Since..*.into.
10c40 74 68 65 20 22 74 65 73 74 65 78 70 72 22 20 61 6e 64 20 74 68 65 20 22 61 72 67 73 22 20 6c 69 the."testexpr".and.the."args".li
10c60 73 74 20 28 77 68 69 63 68 20 61 72 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 62 65 6c 6f 6e 67 st.(which.are.expressions.belong
10c80 69 6e 67 20 74 6f 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 ing.to..*.expression_tree_walker
10ca0 20 77 69 6c 6c 20 68 61 6e 64 6c 65 20 53 75 62 50 6c 61 6e 20 6e 6f 64 65 73 20 62 79 20 72 65 .will.handle.SubPlan.nodes.by.re
10cc0 63 75 72 73 69 6e 67 20 6e 6f 72 6d 61 6c 6c 79 00 20 2a 00 20 2a 20 77 61 6c 6b 65 72 20 6f 6e cursing.normally..*..*.walker.on
10ce0 20 61 6c 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 62 74 72 65 65 73 20 6f 66 20 .all.the.expression.subtrees.of.
10d00 74 68 65 20 67 69 76 65 6e 20 51 75 65 72 79 20 6e 6f 64 65 2e 00 20 2a 20 71 75 65 72 79 5f 74 the.given.Query.node...*.query_t
10d20 72 65 65 5f 77 61 6c 6b 65 72 20 69 73 20 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 20 72 6f 75 74 ree_walker.is.a.convenience.rout
10d40 69 6e 65 20 28 73 65 65 20 62 65 6c 6f 77 29 20 74 68 61 74 20 63 61 6c 6c 73 20 74 68 65 00 20 ine.(see.below).that.calls.the..
10d60 2a 00 20 2a 09 09 7d 00 20 2a 09 09 09 72 65 74 75 72 6e 20 72 65 73 75 6c 74 3b 00 20 2a 09 09 *..*..}..*...return.result;..*..
10d80 09 72 65 73 74 6f 72 65 20 63 6f 6e 74 65 78 74 20 69 66 20 6e 65 65 64 65 64 3b 00 20 2a 09 09 .restore.context.if.needed;..*..
10da0 09 09 09 09 09 09 09 20 20 20 30 29 3b 20 2f 2f 20 61 64 6a 75 73 74 20 66 6c 61 67 73 20 61 73 ..........0);.//.adjust.flags.as
10dc0 20 6e 65 65 64 65 64 00 20 2a 09 09 09 72 65 73 75 6c 74 20 3d 20 71 75 65 72 79 5f 74 72 65 65 .needed..*...result.=.query_tree
10de0 5f 77 61 6c 6b 65 72 28 28 51 75 65 72 79 20 2a 29 20 6e 6f 64 65 2c 20 6d 79 5f 77 61 6c 6b 65 _walker((Query.*).node,.my_walke
10e00 72 2c 20 63 6f 6e 74 65 78 74 2c 00 20 2a 09 09 09 61 64 6a 75 73 74 20 63 6f 6e 74 65 78 74 20 r,.context,..*...adjust.context.
10e20 66 6f 72 20 73 75 62 71 75 65 72 79 3b 00 20 2a 09 09 7b 00 20 2a 09 09 69 66 20 28 49 73 41 28 for.subquery;..*..{..*..if.(IsA(
10e40 6e 6f 64 65 2c 20 51 75 65 72 79 29 29 00 20 2a 00 20 2a 20 73 68 6f 75 6c 64 20 69 6e 63 6c 75 node,.Query))..*..*.should.inclu
10e60 64 65 20 63 6f 64 65 20 61 6c 6f 6e 67 20 74 68 65 20 6c 69 6e 65 73 20 6f 66 3a 00 20 2a 20 69 de.code.along.the.lines.of:..*.i
10e80 6e 63 72 65 6d 65 6e 74 69 6e 67 20 61 20 64 65 70 74 68 20 63 6f 75 6e 74 65 72 29 2e 20 41 20 ncrementing.a.depth.counter)..A.
10ea0 77 61 6c 6b 65 72 20 74 68 61 74 20 77 61 6e 74 73 20 74 6f 20 65 78 61 6d 69 6e 65 20 73 75 62 walker.that.wants.to.examine.sub
10ec0 2d 73 65 6c 65 63 74 73 00 20 2a 20 62 65 68 61 76 69 6f 72 20 69 73 20 74 79 70 69 63 61 6c 6c -selects..*.behavior.is.typicall
10ee0 79 20 6e 65 65 64 65 64 20 61 6e 79 77 61 79 20 61 74 20 74 68 65 20 65 6e 74 72 79 20 74 6f 20 y.needed.anyway.at.the.entry.to.
10f00 61 20 73 75 62 2d 73 65 6c 65 63 74 20 28 73 75 63 68 20 61 73 00 20 2a 20 2d 2d 2d 20 61 6e 64 a.sub-select.(such.as..*.---.and
10f20 20 66 6f 72 20 74 68 6f 73 65 20 77 61 6c 6b 65 72 73 20 74 68 61 74 20 64 6f 20 77 61 6e 74 20 .for.those.walkers.that.do.want.
10f40 74 6f 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 73 75 62 2d 73 65 6c 65 63 74 73 2c 20 73 70 65 to.recurse.into.sub-selects,.spe
10f60 63 69 61 6c 00 20 2a 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 65 65 20 77 61 6c 6b 2e cial..*.an.expression.tree.walk.
10f80 20 54 68 69 73 20 69 73 20 65 78 61 63 74 6c 79 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 77 61 .This.is.exactly.the.behavior.wa
10fa0 6e 74 65 64 20 69 6e 20 6d 61 6e 79 20 63 61 73 65 73 00 20 2a 20 73 6f 6d 65 74 68 69 6e 67 20 nted.in.many.cases..*.something.
10fc0 73 70 65 63 69 61 6c 20 61 74 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c 20 73 75 62 2d 73 65 6c special.at.a.Query.node,.sub-sel
10fe0 65 63 74 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 76 69 73 69 74 65 64 20 64 75 72 69 6e 67 00 ects.will.not.be.visited.during.
11000 61 64 00 00 15 00 00 00 41 02 00 00 00 10 00 00 84 00 00 00 00 00 00 00 ee 0f 00 00 ae 0f 00 00 ad......A.......................
11020 86 0f 00 00 74 0f 00 00 47 0f 00 00 35 0f 00 00 30 0f 00 00 26 0f 00 00 13 0f 00 00 0e 0f 00 00 ....t...G...5...0...&...........
11040 e4 0e 00 00 e3 0e 00 00 af 0e 00 00 90 0e 00 00 7e 0e 00 00 79 0e 00 00 6f 0e 00 00 58 0e 00 00 ................~...y...o...X...
11060 1f 0e 00 00 0e 0e 00 00 d5 0d 00 00 9d 0d 00 00 98 0d 00 00 71 0d 00 00 70 0d 00 00 3c 0d 00 00 ....................q...p...<...
11080 1d 0d 00 00 0b 0d 00 00 06 0d 00 00 fc 0c 00 00 e0 0c 00 00 db 0c 00 00 a1 0c 00 00 a0 0c 00 00 ................................
110a0 6c 0c 00 00 4d 0c 00 00 3b 0c 00 00 36 0c 00 00 2c 0c 00 00 19 0c 00 00 14 0c 00 00 ea 0b 00 00 l...M...;...6...,...............
110c0 e9 0b 00 00 b5 0b 00 00 96 0b 00 00 84 0b 00 00 7f 0b 00 00 75 0b 00 00 63 0b 00 00 5e 0b 00 00 ....................u...c...^...
110e0 32 0b 00 00 31 0b 00 00 05 0b 00 00 f3 0a 00 00 f2 0a 00 00 eb 0a 00 00 aa 0a 00 00 74 0a 00 00 2...1.......................t...
11100 6c 0a 00 00 3c 0a 00 00 37 0a 00 00 2d 0a 00 00 1b 0a 00 00 16 0a 00 00 ea 09 00 00 e9 09 00 00 l...<...7...-...................
11120 ae 09 00 00 82 09 00 00 70 09 00 00 4f 09 00 00 18 09 00 00 f9 08 00 00 e7 08 00 00 e2 08 00 00 ........p...O...................
11140 d8 08 00 00 bb 08 00 00 77 08 00 00 61 08 00 00 29 08 00 00 14 08 00 00 0f 08 00 00 e1 07 00 00 ........w...a...)...............
11160 e0 07 00 00 ba 07 00 00 a8 07 00 00 7e 07 00 00 6c 07 00 00 67 07 00 00 5d 07 00 00 47 07 00 00 ............~...l...g...]...G...
11180 0f 07 00 00 f9 06 00 00 c1 06 00 00 a7 06 00 00 6b 06 00 00 4e 06 00 00 0f 06 00 00 f9 05 00 00 ................k...N...........
111a0 c1 05 00 00 ae 05 00 00 a9 05 00 00 7b 05 00 00 7a 05 00 00 52 05 00 00 40 05 00 00 00 05 00 00 ............{...z...R...@.......
111c0 de 04 00 00 d8 04 00 00 a5 04 00 00 a4 04 00 00 82 04 00 00 5c 04 00 00 49 04 00 00 21 04 00 00 ....................\...I...!...
111e0 0e 04 00 00 08 04 00 00 da 03 00 00 c8 03 00 00 c3 03 00 00 b9 03 00 00 a5 03 00 00 6a 03 00 00 ............................j...
11200 58 03 00 00 2d 03 00 00 f8 02 00 00 df 02 00 00 da 02 00 00 a4 02 00 00 a3 02 00 00 7b 02 00 00 X...-.......................{...
11220 69 02 00 00 41 02 00 00 40 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 i...A...@.......................
11240 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 63 65 78 70 72 2d 3e 72 61 72 67 73 2c 20 63 .....if.(walker(rcexpr->rargs,.c
11260 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 ontext))......return.true;.....i
11280 66 20 28 77 61 6c 6b 65 72 28 72 63 65 78 70 72 2d 3e 6c 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 f.(walker(rcexpr->largs,.context
112a0 29 29 00 00 09 09 09 09 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 20 2a 72 63 65 78 70 72 20 3d ))......RowCompareExpr.*rcexpr.=
112c0 20 28 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 .(RowCompareExpr.*).node;....{..
112e0 09 63 61 73 65 20 54 5f 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 .case.T_RowCompareExpr:....retur
11300 6e 20 77 61 6c 6b 65 72 28 28 28 52 6f 77 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 n.walker(((RowExpr.*).node)->arg
11320 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 09 2f 2a 20 41 73 73 75 6d 65 20 63 6f 6c 6e 61 6d s,.context);..../*.Assume.colnam
11340 65 73 20 69 73 6e 27 74 20 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 63 61 73 65 20 54 es.isn't.interesting.*/...case.T
11360 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 41 72 72 _RowExpr:....return.walker(((Arr
11380 61 79 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 65 6c 65 6d 65 6e 74 73 2c 20 63 6f 6e 74 65 ayExpr.*).node)->elements,.conte
113a0 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 xt);...case.T_ArrayExpr:....brea
113c0 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 k;....}......return.true;.....if
113e0 20 28 77 61 6c 6b 65 72 28 63 61 73 65 65 78 70 72 2d 3e 64 65 66 72 65 73 75 6c 74 2c 20 63 6f .(walker(caseexpr->defresult,.co
11400 6e 74 65 78 74 29 29 00 09 09 09 09 7d 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b ntext)).....}.......return.true;
11420 00 09 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 68 65 6e 2d 3e 72 65 73 75 6c 74 2c 20 63 ......if.(walker(when->result,.c
11440 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 ontext)).......return.true;.....
11460 09 69 66 20 28 77 61 6c 6b 65 72 28 77 68 65 6e 2d 3e 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 .if.(walker(when->expr,.context)
11480 29 00 09 09 09 09 09 41 73 73 65 72 74 28 49 73 41 28 77 68 65 6e 2c 20 43 61 73 65 57 68 65 6e )......Assert(IsA(when,.CaseWhen
114a0 29 29 3b 00 00 09 09 09 09 09 43 61 73 65 57 68 65 6e 20 20 20 2a 77 68 65 6e 20 3d 20 28 43 61 ));.......CaseWhen...*when.=.(Ca
114c0 73 65 57 68 65 6e 20 2a 29 20 6c 66 69 72 73 74 28 74 65 6d 70 29 3b 00 09 09 09 09 7b 00 09 09 seWhen.*).lfirst(temp);.....{...
114e0 09 09 66 6f 72 65 61 63 68 28 74 65 6d 70 2c 20 63 61 73 65 65 78 70 72 2d 3e 61 72 67 73 29 00 ..foreach(temp,.caseexpr->args).
11500 09 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 77 61 6c 6b 65 72 20 64 6f 65 73 6e 27 74 20 ..../*.we.assume.walker.doesn't.
11520 63 61 72 65 20 61 62 6f 75 74 20 43 61 73 65 57 68 65 6e 73 2c 20 65 69 74 68 65 72 20 2a 2f 00 care.about.CaseWhens,.either.*/.
11540 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
11560 28 63 61 73 65 65 78 70 72 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 43 (caseexpr->arg,.context))......C
11580 61 73 65 45 78 70 72 20 20 20 2a 63 61 73 65 65 78 70 72 20 3d 20 28 43 61 73 65 45 78 70 72 20 aseExpr...*caseexpr.=.(CaseExpr.
115a0 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 45 78 70 72 3a *).node;....{...case.T_CaseExpr:
115c0 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 6c 6c 61 74 65 45 78 70 72 20 ....return.walker(((CollateExpr.
115e0 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 *).node)->arg,.context);...case.
11600 54 5f 43 6f 6c 6c 61 74 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 T_CollateExpr:....return.walker(
11620 28 28 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 ((ConvertRowtypeExpr.*).node)->a
11640 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 6e 76 65 72 74 52 6f rg,.context);...case.T_ConvertRo
11660 77 74 79 70 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 41 72 wtypeExpr:....return.walker(((Ar
11680 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e rayCoerceExpr.*).node)->arg,.con
116a0 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a text);...case.T_ArrayCoerceExpr:
116c0 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 65 72 63 65 56 69 61 49 4f 20 ....return.walker(((CoerceViaIO.
116e0 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 *).node)->arg,.context);...case.
11700 54 5f 43 6f 65 72 63 65 56 69 61 49 4f 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 T_CoerceViaIO:....return.walker(
11720 28 28 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e ((RelabelType.*).node)->arg,.con
11740 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c 54 79 70 65 3a 00 09 09 09 text);...case.T_RelabelType:....
11760 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 break;....}......return.true;...
11780 09 09 69 66 20 28 77 61 6c 6b 65 72 28 66 73 74 6f 72 65 2d 3e 6e 65 77 76 61 6c 73 2c 20 63 6f ..if.(walker(fstore->newvals,.co
117a0 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 ntext))......return.true;.....if
117c0 20 28 77 61 6c 6b 65 72 28 66 73 74 6f 72 65 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 .(walker(fstore->arg,.context)).
117e0 00 09 09 09 09 46 69 65 6c 64 53 74 6f 72 65 20 2a 66 73 74 6f 72 65 20 3d 20 28 46 69 65 6c 64 .....FieldStore.*fstore.=.(Field
11800 53 74 6f 72 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 69 65 Store.*).node;....{...case.T_Fie
11820 6c 64 53 74 6f 72 65 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 46 69 65 6c ldStore:....return.walker(((Fiel
11840 64 53 65 6c 65 63 74 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b dSelect.*).node)->arg,.context);
11860 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 63 74 3a 00 09 09 09 72 65 74 75 72 6e ...case.T_FieldSelect:....return
11880 20 77 61 6c 6b 65 72 28 28 28 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 29 20 .walker(((AlternativeSubPlan.*).
118a0 6e 6f 64 65 29 2d 3e 73 75 62 70 6c 61 6e 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 node)->subplans,.context);...cas
118c0 65 20 54 5f 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 6b e.T_AlternativeSubPlan:....break
118e0 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 ;....}......return.true;........
11900 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 ......walker,.context)).....if.(
11920 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 expression_tree_walker((Node.*).
11940 73 75 62 70 6c 61 6e 2d 3e 61 72 67 73 2c 00 09 09 09 09 2f 2a 20 61 6c 73 6f 20 65 78 61 6d 69 subplan->args,...../*.also.exami
11960 6e 65 20 61 72 67 73 20 6c 69 73 74 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 ne.args.list.*/......return.true
11980 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 75 62 70 6c 61 6e 2d 3e 74 65 73 74 65 78 ;.....if.(walker(subplan->testex
119a0 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 72 65 63 75 72 73 65 20 69 6e 74 pr,.context))...../*.recurse.int
119c0 6f 20 74 68 65 20 74 65 73 74 65 78 70 72 2c 20 62 75 74 20 6e 6f 74 20 69 6e 74 6f 20 74 68 65 o.the.testexpr,.but.not.into.the
119e0 20 50 6c 61 6e 20 2a 2f 00 00 09 09 09 09 53 75 62 50 6c 61 6e 20 20 20 20 2a 73 75 62 70 6c 61 .Plan.*/......SubPlan....*subpla
11a00 6e 20 3d 20 28 53 75 62 50 6c 61 6e 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 n.=.(SubPlan.*).node;....{...cas
11a20 65 20 54 5f 53 75 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 e.T_SubPlan:....break;....}.....
11a40 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 73 65 6c 65 63 74 return.walker(sublink->subselect
11a60 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 63 61 6e 20 72 ,.context);......*/......*.can.r
11a80 65 63 75 72 73 65 20 69 6e 74 6f 20 74 68 65 20 73 75 62 2d 71 75 65 72 79 20 69 66 20 69 74 20 ecurse.into.the.sub-query.if.it.
11aa0 77 61 6e 74 73 20 74 6f 2e 00 09 09 09 09 20 2a 20 41 6c 73 6f 20 69 6e 76 6f 6b 65 20 74 68 65 wants.to.......*.Also.invoke.the
11ac0 20 77 61 6c 6b 65 72 20 6f 6e 20 74 68 65 20 73 75 62 6c 69 6e 6b 27 73 20 51 75 65 72 79 20 6e .walker.on.the.sublink's.Query.n
11ae0 6f 64 65 2c 20 73 6f 20 69 74 00 09 09 09 09 2f 2a 00 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 ode,.so.it...../*.......return.t
11b00 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 75 62 6c 69 6e 6b 2d 3e 74 65 73 rue;.....if.(walker(sublink->tes
11b20 74 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 53 75 62 4c 69 6e 6b 20 20 20 texpr,.context))......SubLink...
11b40 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 28 53 75 62 4c 69 6e 6b 20 2a 29 20 6e 6f 64 65 3b 00 09 09 .*sublink.=.(SubLink.*).node;...
11b60 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 .{...case.T_SubLink:....break;..
11b80 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 ..}......return.true;...........
11ba0 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 ...walker,.context)).....if.(exp
11bc0 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 ression_tree_walker((Node.*).exp
11be0 72 2d 3e 61 72 67 73 2c 00 00 09 09 09 09 42 6f 6f 6c 45 78 70 72 20 20 20 2a 65 78 70 72 20 3d r->args,......BoolExpr...*expr.=
11c00 20 28 42 6f 6f 6c 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 .(BoolExpr.*).node;....{...case.
11c20 54 5f 42 6f 6f 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 T_BoolExpr:....break;....}......
11c40 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 return.true;..............walker
11c60 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 ,.context)).....if.(expression_t
11c80 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 72 67 73 2c 00 ree_walker((Node.*).expr->args,.
11ca0 00 09 09 09 09 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 20 2a 65 78 70 72 20 3d 20 28 .....ScalarArrayOpExpr.*expr.=.(
11cc0 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 ScalarArrayOpExpr.*).node;....{.
11ce0 09 09 63 61 73 65 20 54 5f 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 ..case.T_ScalarArrayOpExpr:....b
11d00 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 reak;....}......return.true;....
11d20 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 ..........walker,.context)).....
11d40 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 if.(expression_tree_walker((Node
11d60 20 2a 29 20 65 78 70 72 2d 3e 61 72 67 73 2c 00 00 09 09 09 09 4f 70 45 78 70 72 09 20 20 20 2a .*).expr->args,......OpExpr....*
11d80 65 78 70 72 20 3d 20 28 4f 70 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 expr.=.(OpExpr.*).node;....{...c
11da0 61 73 65 20 54 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 09 09 2f 2a 20 73 74 72 75 63 74 2d 65 71 75 ase.T_NullIfExpr:../*.struct-equ
11dc0 69 76 61 6c 65 6e 74 20 74 6f 20 4f 70 45 78 70 72 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 44 69 ivalent.to.OpExpr.*/...case.T_Di
11de0 73 74 69 6e 63 74 45 78 70 72 3a 09 2f 2a 20 73 74 72 75 63 74 2d 65 71 75 69 76 61 6c 65 6e 74 stinctExpr:./*.struct-equivalent
11e00 20 74 6f 20 4f 70 45 78 70 72 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 4f 70 45 78 70 72 3a 00 09 .to.OpExpr.*/...case.T_OpExpr:..
11e20 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a ..return.walker(((NamedArgExpr.*
11e40 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 ).node)->arg,.context);...case.T
11e60 5f 4e 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 _NamedArgExpr:....break;....}...
11e80 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c ...return.true;..............wal
11ea0 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f ker,.context)).....if.(expressio
11ec0 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 65 78 70 72 2d 3e 61 72 67 n_tree_walker((Node.*).expr->arg
11ee0 73 2c 00 00 09 09 09 09 46 75 6e 63 45 78 70 72 20 20 20 2a 65 78 70 72 20 3d 20 28 46 75 6e 63 s,......FuncExpr...*expr.=.(Func
11f00 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 Expr.*).node;....{...case.T_Func
11f20 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e Expr:....break;....}......return
11f40 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 61 72 65 66 2d 3e 72 65 66 61 .true;.....if.(walker(aref->refa
11f60 73 73 67 6e 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 ssgnexpr,.context))......return.
11f80 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 61 72 65 66 2d 3e 72 65 66 65 78 true;.....if.(walker(aref->refex
11fa0 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 77 61 6c 6b 65 72 20 6d 75 73 74 pr,.context))...../*.walker.must
11fc0 20 73 65 65 20 74 68 65 20 72 65 66 65 78 70 72 20 61 6e 64 20 72 65 66 61 73 73 67 6e 65 78 70 .see.the.refexpr.and.refassgnexp
11fe0 72 2c 20 68 6f 77 65 76 65 72 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 r,.however.*/......return.true;.
12000 61 64 00 00 2c 00 00 00 68 02 00 00 00 10 00 00 88 00 00 00 00 00 00 00 ee 0f 00 00 e9 0f 00 00 ad..,...h.......................
12020 df 0f 00 00 c8 0f 00 00 8e 0f 00 00 79 0f 00 00 41 0f 00 00 2f 0f 00 00 2a 0f 00 00 00 0f 00 00 ............y...A.../...*.......
12040 ff 0e 00 00 d3 0e 00 00 c1 0e 00 00 89 0e 00 00 63 0e 00 00 51 0e 00 00 4c 0e 00 00 42 0e 00 00 ................c...Q...L...B...
12060 2f 0e 00 00 fa 0d 00 00 e4 0d 00 00 ac 0d 00 00 93 0d 00 00 58 0d 00 00 42 0d 00 00 09 0d 00 00 /...................X...B.......
12080 f9 0c 00 00 be 0c 00 00 b4 0c 00 00 9d 0c 00 00 98 0c 00 00 6a 0c 00 00 69 0c 00 00 3b 0c 00 00 ....................j...i...;...
120a0 29 0c 00 00 ff 0b 00 00 ed 0b 00 00 c3 0b 00 00 b1 0b 00 00 89 0b 00 00 77 0b 00 00 72 0b 00 00 ).......................w...r...
120c0 68 0b 00 00 4e 0b 00 00 49 0b 00 00 14 0b 00 00 13 0b 00 00 0c 0b 00 00 d0 0a 00 00 9e 0a 00 00 h...N...I.......................
120e0 96 0a 00 00 6b 0a 00 00 66 0a 00 00 5c 0a 00 00 4d 0a 00 00 2d 0a 00 00 28 0a 00 00 f8 09 00 00 ....k...f...\...M...-...(.......
12100 e6 09 00 00 e1 09 00 00 d7 09 00 00 c4 09 00 00 bf 09 00 00 95 09 00 00 94 09 00 00 6b 09 00 00 ............................k...
12120 59 09 00 00 33 09 00 00 21 09 00 00 1c 09 00 00 12 09 00 00 f9 08 00 00 f4 08 00 00 ba 08 00 00 Y...3...!.......................
12140 b9 08 00 00 7d 08 00 00 6b 08 00 00 38 08 00 00 26 08 00 00 f2 07 00 00 e0 07 00 00 aa 07 00 00 ....}...k...8...&...............
12160 98 07 00 00 65 07 00 00 53 07 00 00 4e 07 00 00 44 07 00 00 31 07 00 00 2c 07 00 00 02 07 00 00 ....e...S...N...D...1...,.......
12180 01 07 00 00 dc 06 00 00 ca 06 00 00 a5 06 00 00 93 06 00 00 6d 06 00 00 5b 06 00 00 5a 06 00 00 ....................m...[...Z...
121a0 53 06 00 00 19 06 00 00 11 06 00 00 0c 06 00 00 02 06 00 00 e7 05 00 00 e2 05 00 00 a9 05 00 00 S...............................
121c0 a8 05 00 00 82 05 00 00 70 05 00 00 4a 05 00 00 38 05 00 00 37 05 00 00 07 05 00 00 02 05 00 00 ........p...J...8...7...........
121e0 f8 04 00 00 df 04 00 00 a1 04 00 00 89 04 00 00 4e 04 00 00 36 04 00 00 31 04 00 00 fc 03 00 00 ................N...6...1.......
12200 fb 03 00 00 b9 03 00 00 9a 03 00 00 88 03 00 00 83 03 00 00 79 03 00 00 5f 03 00 00 20 03 00 00 ....................y..._.......
12220 05 03 00 00 c3 02 00 00 a7 02 00 00 a2 02 00 00 69 02 00 00 68 02 00 00 67 02 00 00 00 00 00 00 ................i...h...g.......
12240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12260 00 00 00 00 00 00 00 00 00 09 09 09 09 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a .............TableSampleClause.*
12280 74 73 63 20 3d 20 28 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 tsc.=.(TableSampleClause.*).node
122a0 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 ;....{...case.T_TableSampleClaus
122c0 65 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 52 61 6e 67 65 54 62 6c 46 75 e:....return.walker(((RangeTblFu
122e0 6e 63 74 69 6f 6e 20 2a 29 20 6e 6f 64 65 29 2d 3e 66 75 6e 63 65 78 70 72 2c 20 63 6f 6e 74 65 nction.*).node)->funcexpr,.conte
12300 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 54 62 6c 46 75 6e 63 74 69 6f 6e 3a 00 xt);...case.T_RangeTblFunction:.
12320 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 50 6c 61 63 65 48 6f 6c 64 65 72 49 6e ...return.walker(((PlaceHolderIn
12340 66 6f 20 2a 29 20 6e 6f 64 65 29 2d 3e 70 68 5f 76 61 72 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 fo.*).node)->ph_var,.context);..
12360 09 63 61 73 65 20 54 5f 50 6c 61 63 65 48 6f 6c 64 65 72 49 6e 66 6f 3a 00 09 09 09 62 72 65 61 .case.T_PlaceHolderInfo:....brea
12380 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 k;....}......return.true;.......
123a0 09 09 09 09 20 20 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 .......walker,.context)).....if.
123c0 28 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 (expression_tree_walker((Node.*)
123e0 20 61 70 70 69 6e 66 6f 2d 3e 74 72 61 6e 73 6c 61 74 65 64 5f 76 61 72 73 2c 00 00 09 09 09 09 .appinfo->translated_vars,......
12400 41 70 70 65 6e 64 52 65 6c 49 6e 66 6f 20 2a 61 70 70 69 6e 66 6f 20 3d 20 28 41 70 70 65 6e 64 AppendRelInfo.*appinfo.=.(Append
12420 52 65 6c 49 6e 66 6f 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 RelInfo.*).node;....{...case.T_A
12440 70 70 65 6e 64 52 65 6c 49 6e 66 6f 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 ppendRelInfo:....return.walker((
12460 28 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a 29 20 6e 6f 64 65 29 2d 3e 65 78 70 72 2c 20 63 (InferenceElem.*).node)->expr,.c
12480 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 3a ontext);...case.T_InferenceElem:
124a0 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 50 6c 61 63 65 48 6f 6c 64 65 72 56 ....return.walker(((PlaceHolderV
124c0 61 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 70 68 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 ar.*).node)->phexpr,.context);..
124e0 09 63 61 73 65 20 54 5f 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 3a 00 09 09 09 62 72 65 61 6b .case.T_PlaceHolderVar:....break
12500 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 67 72 6f 75 70 43 6c 61 75 73 65 73 20 61 72 65 20 64 ;....}...../*.groupClauses.are.d
12520 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 00 09 09 09 09 09 72 65 74 eemed.uninteresting.*/.......ret
12540 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 65 74 6f 70 2d 3e urn.true;.....if.(walker(setop->
12560 72 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 rarg,.context))......return.true
12580 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 65 74 6f 70 2d 3e 6c 61 72 67 2c 20 63 6f ;.....if.(walker(setop->larg,.co
125a0 6e 74 65 78 74 29 29 00 00 09 09 09 09 53 65 74 4f 70 65 72 61 74 69 6f 6e 53 74 6d 74 20 2a 73 ntext))......SetOperationStmt.*s
125c0 65 74 6f 70 20 3d 20 28 53 65 74 4f 70 65 72 61 74 69 6f 6e 53 74 6d 74 20 2a 29 20 6e 6f 64 65 etop.=.(SetOperationStmt.*).node
125e0 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 65 74 4f 70 65 72 61 74 69 6f 6e 53 74 6d 74 ;....{...case.T_SetOperationStmt
12600 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 :....break;....}......*/......*.
12620 61 6c 69 61 73 20 63 6c 61 75 73 65 2c 20 75 73 69 6e 67 20 6c 69 73 74 20 61 72 65 20 64 65 65 alias.clause,.using.list.are.dee
12640 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e 67 2e 00 09 09 09 09 2f 2a 00 00 09 09 09 09 09 med.uninteresting....../*.......
12660 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6a 6f 69 6e return.true;.....if.(walker(join
12680 2d 3e 71 75 61 6c 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 ->quals,.context))......return.t
126a0 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6a 6f 69 6e 2d 3e 72 61 72 67 2c 20 rue;.....if.(walker(join->rarg,.
126c0 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 context))......return.true;.....
126e0 69 66 20 28 77 61 6c 6b 65 72 28 6a 6f 69 6e 2d 3e 6c 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 if.(walker(join->larg,.context))
12700 00 00 09 09 09 09 4a 6f 69 6e 45 78 70 72 20 20 20 2a 6a 6f 69 6e 20 3d 20 28 4a 6f 69 6e 45 78 ......JoinExpr...*join.=.(JoinEx
12720 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4a 6f 69 6e 45 78 pr.*).node;....{...case.T_JoinEx
12740 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 pr:....break;....}......return.t
12760 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6f 6e 63 6f 6e 66 6c 69 63 74 2d 3e rue;.....if.(walker(onconflict->
12780 65 78 63 6c 52 65 6c 54 6c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 exclRelTlist,.context))......ret
127a0 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6f 6e 63 6f 6e 66 6c urn.true;.....if.(walker(onconfl
127c0 69 63 74 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 57 68 65 72 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 ict->onConflictWhere,.context)).
127e0 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
12800 28 6f 6e 63 6f 6e 66 6c 69 63 74 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 53 65 74 2c 20 63 6f 6e 74 (onconflict->onConflictSet,.cont
12820 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 ext))......return.true;.....if.(
12840 77 61 6c 6b 65 72 28 6f 6e 63 6f 6e 66 6c 69 63 74 2d 3e 61 72 62 69 74 65 72 57 68 65 72 65 2c walker(onconflict->arbiterWhere,
12860 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 .context))......return.true;....
12880 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 6f 6e 63 6f 6e 66 6c 69 63 74 2d .if.(walker((Node.*).onconflict-
128a0 3e 61 72 62 69 74 65 72 45 6c 65 6d 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 4f 6e >arbiterElems,.context))......On
128c0 43 6f 6e 66 6c 69 63 74 45 78 70 72 20 2a 6f 6e 63 6f 6e 66 6c 69 63 74 20 3d 20 28 4f 6e 43 6f ConflictExpr.*onconflict.=.(OnCo
128e0 6e 66 6c 69 63 74 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 nflictExpr.*).node;....{...case.
12900 54 5f 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d T_OnConflictExpr:....break;....}
12920 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
12940 72 28 66 72 6f 6d 2d 3e 71 75 61 6c 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 r(from->quals,.context))......re
12960 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 66 72 6f 6d 2d 3e turn.true;.....if.(walker(from->
12980 66 72 6f 6d 6c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 46 72 6f 6d 45 78 70 fromlist,.context))......FromExp
129a0 72 20 20 20 2a 66 72 6f 6d 20 3d 20 28 46 72 6f 6d 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 r...*from.=.(FromExpr.*).node;..
129c0 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 72 6f 6d 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b ..{...case.T_FromExpr:....break;
129e0 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 ....}......return.true;.....if.(
12a00 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 6c 66 69 72 73 74 28 74 65 6d 70 29 2c 20 63 6f walker((Node.*).lfirst(temp),.co
12a20 6e 74 65 78 74 29 29 00 09 09 09 7b 00 09 09 09 66 6f 72 65 61 63 68 28 74 65 6d 70 2c 20 28 4c ntext))....{....foreach(temp,.(L
12a40 69 73 74 20 2a 29 20 6e 6f 64 65 29 00 09 09 63 61 73 65 20 54 5f 4c 69 73 74 3a 00 09 09 09 62 ist.*).node)...case.T_List:....b
12a60 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 63 74 65 reak;....}.....return.walker(cte
12a80 2d 3e 63 74 65 71 75 65 72 79 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 09 09 20 2a 2f 00 09 09 ->ctequery,.context);......*/...
12aa0 09 09 20 2a 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 74 68 65 20 73 75 62 2d 71 75 65 72 79 20 ...*.recurse.into.the.sub-query.
12ac0 69 66 20 69 74 20 77 61 6e 74 73 20 74 6f 2e 00 09 09 09 09 20 2a 20 49 6e 76 6f 6b 65 20 74 68 if.it.wants.to.......*.Invoke.th
12ae0 65 20 77 61 6c 6b 65 72 20 6f 6e 20 74 68 65 20 43 54 45 27 73 20 51 75 65 72 79 20 6e 6f 64 65 e.walker.on.the.CTE's.Query.node
12b00 2c 20 73 6f 20 69 74 20 63 61 6e 00 09 09 09 09 2f 2a 00 00 09 09 09 09 43 6f 6d 6d 6f 6e 54 61 ,.so.it.can...../*......CommonTa
12b20 62 6c 65 45 78 70 72 20 2a 63 74 65 20 3d 20 28 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 20 bleExpr.*cte.=.(CommonTableExpr.
12b40 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 6d 6d 6f 6e 54 61 62 *).node;....{...case.T_CommonTab
12b60 6c 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 leExpr:....break;....}......retu
12b80 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 63 2d 3e 65 6e 64 4f rn.true;.....if.(walker(wc->endO
12ba0 66 66 73 65 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 ffset,.context))......return.tru
12bc0 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 63 2d 3e 73 74 61 72 74 4f 66 66 73 65 e;.....if.(walker(wc->startOffse
12be0 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 t,.context))......return.true;..
12c00 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 63 2d 3e 6f 72 64 65 72 43 6c 61 75 73 65 2c 20 63 ...if.(walker(wc->orderClause,.c
12c20 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 ontext))......return.true;.....i
12c40 66 20 28 77 61 6c 6b 65 72 28 77 63 2d 3e 70 61 72 74 69 74 69 6f 6e 43 6c 61 75 73 65 2c 20 63 f.(walker(wc->partitionClause,.c
12c60 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 57 69 6e 64 6f 77 43 6c 61 75 73 65 20 2a 77 63 20 3d ontext))......WindowClause.*wc.=
12c80 20 28 57 69 6e 64 6f 77 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 .(WindowClause.*).node;....{...c
12ca0 61 73 65 20 54 5f 57 69 6e 64 6f 77 43 6c 61 75 73 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ase.T_WindowClause:....break;...
12cc0 09 2f 2a 20 44 6f 20 6e 6f 74 68 69 6e 67 20 77 69 74 68 20 61 20 73 75 62 2d 51 75 65 72 79 2c ./*.Do.nothing.with.a.sub-Query,
12ce0 20 70 65 72 20 64 69 73 63 75 73 73 69 6f 6e 20 61 62 6f 76 65 20 2a 2f 00 09 09 63 61 73 65 20 .per.discussion.above.*/...case.
12d00 54 5f 51 75 65 72 79 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 54 61 72 67 T_Query:....return.walker(((Targ
12d20 65 74 45 6e 74 72 79 20 2a 29 20 6e 6f 64 65 29 2d 3e 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 etEntry.*).node)->expr,.context)
12d40 3b 00 09 09 63 61 73 65 20 54 5f 54 61 72 67 65 74 45 6e 74 72 79 3a 00 09 09 09 72 65 74 75 72 ;...case.T_TargetEntry:....retur
12d60 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 6e 6f 64 n.walker(((CoerceToDomain.*).nod
12d80 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 e)->arg,.context);...case.T_Coer
12da0 63 65 54 6f 44 6f 6d 61 69 6e 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 42 ceToDomain:....return.walker(((B
12dc0 6f 6f 6c 65 61 6e 54 65 73 74 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 ooleanTest.*).node)->arg,.contex
12de0 74 29 3b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 65 61 6e 54 65 73 74 3a 00 09 09 09 72 65 74 t);...case.T_BooleanTest:....ret
12e00 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4e 75 6c 6c 54 65 73 74 20 2a 29 20 6e 6f 64 65 29 2d 3e urn.walker(((NullTest.*).node)->
12e20 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 54 65 73 74 arg,.context);...case.T_NullTest
12e40 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 :....break;....}......return.tru
12e60 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 78 65 78 70 72 2d 3e 61 72 67 73 2c 20 63 e;.....if.(walker(xexpr->args,.c
12e80 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 77 61 6c 6b 65 72 ontext))...../*.we.assume.walker
12ea0 20 64 6f 65 73 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 61 72 67 5f 6e 61 6d 65 73 20 2a 2f .doesn't.care.about.arg_names.*/
12ec0 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
12ee0 72 28 78 65 78 70 72 2d 3e 6e 61 6d 65 64 5f 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 r(xexpr->named_args,.context))..
12f00 09 09 09 09 58 6d 6c 45 78 70 72 20 20 20 20 2a 78 65 78 70 72 20 3d 20 28 58 6d 6c 45 78 70 72 ....XmlExpr....*xexpr.=.(XmlExpr
12f20 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a .*).node;....{...case.T_XmlExpr:
12f40 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4d 69 6e 4d 61 78 45 78 70 72 20 2a ....return.walker(((MinMaxExpr.*
12f60 29 20 6e 6f 64 65 29 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 ).node)->args,.context);...case.
12f80 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 T_MinMaxExpr:....return.walker((
12fa0 28 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 73 2c 20 63 6f (CoalesceExpr.*).node)->args,.co
12fc0 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 70 72 3a 00 09 ntext);...case.T_CoalesceExpr:..
12fe0 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 ..break;....}......return.true;.
13000 61 64 00 00 35 00 00 00 5d 02 00 00 00 10 00 00 83 00 00 00 00 00 00 00 cd 0f 00 00 ae 0f 00 00 ad..5...].......................
13020 9c 0f 00 00 69 0f 00 00 57 0f 00 00 52 0f 00 00 48 0f 00 00 3d 0f 00 00 10 0f 00 00 f5 0e 00 00 ....i...W...R...H...=...........
13040 eb 0e 00 00 e8 0e 00 00 d9 0e 00 00 d7 0e 00 00 d6 0e 00 00 d3 0e 00 00 91 0e 00 00 8e 0e 00 00 ................................
13060 41 0e 00 00 f7 0d 00 00 ae 0d 00 00 69 0d 00 00 3a 0d 00 00 37 0d 00 00 e8 0c 00 00 9c 0c 00 00 A...........i...:...7...........
13080 4e 0c 00 00 0a 0c 00 00 cc 0b 00 00 c8 0b 00 00 c3 0b 00 00 a3 0b 00 00 8a 0b 00 00 75 0b 00 00 N...........................u...
130a0 64 0b 00 00 62 0b 00 00 35 0b 00 00 34 0b 00 00 02 0b 00 00 f3 0a 00 00 bb 0a 00 00 ac 0a 00 00 d...b...5...4...................
130c0 7a 0a 00 00 6b 0a 00 00 36 0a 00 00 27 0a 00 00 f7 09 00 00 e8 09 00 00 bc 09 00 00 ad 09 00 00 z...k...6...'...................
130e0 84 09 00 00 75 09 00 00 4b 09 00 00 3c 09 00 00 13 09 00 00 04 09 00 00 d9 08 00 00 d6 08 00 00 ....u...K...<...................
13100 a6 08 00 00 96 08 00 00 93 08 00 00 6b 08 00 00 68 08 00 00 27 08 00 00 17 08 00 00 14 08 00 00 ............k...h...'...........
13120 05 08 00 00 03 08 00 00 02 08 00 00 ff 07 00 00 b8 07 00 00 72 07 00 00 66 07 00 00 62 07 00 00 ....................r...f...b...
13140 5d 07 00 00 3c 07 00 00 22 07 00 00 0c 07 00 00 fa 06 00 00 f8 06 00 00 e7 06 00 00 e6 06 00 00 ]...<...".......................
13160 d1 06 00 00 ce 06 00 00 99 06 00 00 98 06 00 00 57 06 00 00 37 06 00 00 1a 06 00 00 09 06 00 00 ................W...7...........
13180 08 06 00 00 f0 05 00 00 ec 05 00 00 d6 05 00 00 ab 05 00 00 99 05 00 00 8e 05 00 00 7d 05 00 00 ............................}...
131a0 65 05 00 00 5a 05 00 00 44 05 00 00 17 05 00 00 ee 04 00 00 db 04 00 00 d0 04 00 00 be 04 00 00 e...Z...D.......................
131c0 93 04 00 00 65 04 00 00 52 04 00 00 47 04 00 00 31 04 00 00 08 04 00 00 f6 03 00 00 eb 03 00 00 ....e...R...G...1...............
131e0 d7 03 00 00 ab 03 00 00 99 03 00 00 8e 03 00 00 8a 03 00 00 89 03 00 00 5e 03 00 00 4e 03 00 00 ........................^...N...
13200 4b 03 00 00 3c 03 00 00 3a 03 00 00 39 03 00 00 38 03 00 00 35 03 00 00 ec 02 00 00 a7 02 00 00 K...<...:...9...8...5...........
13220 5d 02 00 00 5c 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]...\...........................
13240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 2a 20 ..............................*.
13260 72 65 6d 6f 76 65 64 2c 20 6f 72 20 72 65 70 6c 61 63 65 64 20 62 79 20 6e 65 77 20 73 75 62 74 removed,.or.replaced.by.new.subt
13280 72 65 65 73 2e 20 20 54 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 72 65 65 20 69 73 20 28 6e 6f 72 rees...The.original.tree.is.(nor
132a0 6d 61 6c 6c 79 29 00 20 2a 20 6d 6f 64 69 66 69 65 64 20 63 6f 70 79 20 6f 66 20 61 6e 20 65 78 mally)..*.modified.copy.of.an.ex
132c0 70 72 65 73 73 69 6f 6e 20 74 72 65 65 2c 20 77 69 74 68 20 73 6f 6d 65 20 6e 6f 64 65 73 20 62 pression.tree,.with.some.nodes.b
132e0 65 69 6e 67 20 61 64 64 65 64 2c 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d eing.added,..*.expression_tree_m
13300 75 74 61 74 6f 72 28 29 20 69 73 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 75 70 70 6f 72 74 20 utator().is.designed.to.support.
13320 72 6f 75 74 69 6e 65 73 20 74 68 61 74 20 6d 61 6b 65 20 61 00 2f 2a 00 00 00 7d 00 09 72 65 74 routines.that.make.a./*...}..ret
13340 75 72 6e 20 66 61 6c 73 65 3b 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 urn.false;..}....return.true;...
13360 69 66 20 28 77 61 6c 6b 65 72 28 72 74 65 2d 3e 73 65 63 75 72 69 74 79 51 75 61 6c 73 2c 20 63 if.(walker(rte->securityQuals,.c
13380 6f 6e 74 65 78 74 29 29 00 00 09 09 7d 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 09 72 65 ontext))....}.....break;......re
133a0 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 65 2d 3e 76 turn.true;.....if.(walker(rte->v
133c0 61 6c 75 65 73 5f 6c 69 73 74 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 63 61 73 65 20 52 alues_lists,.context))....case.R
133e0 54 45 5f 56 41 4c 55 45 53 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 09 72 65 74 75 72 TE_VALUES:.....break;......retur
13400 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 65 2d 3e 66 75 6e 63 n.true;.....if.(walker(rte->func
13420 74 69 6f 6e 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 63 61 73 65 20 52 54 45 5f 46 55 4e tions,.context))....case.RTE_FUN
13440 43 54 49 4f 4e 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 74 CTION:.....break;.......return.t
13460 72 75 65 3b 00 09 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 65 2d 3e 6a 6f 69 6e 61 6c rue;......if.(walker(rte->joinal
13480 69 61 73 76 61 72 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 21 28 66 6c 61 iasvars,.context)).....if.(!(fla
134a0 67 73 20 26 20 51 54 57 5f 49 47 4e 4f 52 45 5f 4a 4f 49 4e 41 4c 49 41 53 45 53 29 29 00 09 09 gs.&.QTW_IGNORE_JOINALIASES))...
134c0 09 63 61 73 65 20 52 54 45 5f 4a 4f 49 4e 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 09 .case.RTE_JOIN:.....break;......
134e0 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 .return.true;......if.(walker(rt
13500 65 2d 3e 73 75 62 71 75 65 72 79 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 21 e->subquery,.context)).....if.(!
13520 28 66 6c 61 67 73 20 26 20 51 54 57 5f 49 47 4e 4f 52 45 5f 52 54 5f 53 55 42 51 55 45 52 49 45 (flags.&.QTW_IGNORE_RT_SUBQUERIE
13540 53 29 29 00 09 09 09 63 61 73 65 20 52 54 45 5f 53 55 42 51 55 45 52 59 3a 00 09 09 09 09 62 72 S))....case.RTE_SUBQUERY:.....br
13560 65 61 6b 3b 00 09 09 09 09 2f 2a 20 6e 6f 74 68 69 6e 67 20 74 6f 20 64 6f 20 2a 2f 00 09 09 09 eak;...../*.nothing.to.do.*/....
13580 63 61 73 65 20 52 54 45 5f 43 54 45 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 09 72 65 case.RTE_CTE:.....break;......re
135a0 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 65 2d 3e 74 turn.true;.....if.(walker(rte->t
135c0 61 62 6c 65 73 61 6d 70 6c 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 63 61 73 65 20 52 54 ablesample,.context))....case.RT
135e0 45 5f 52 45 4c 41 54 49 4f 4e 3a 00 09 09 7b 00 09 09 73 77 69 74 63 68 20 28 72 74 65 2d 3e 72 E_RELATION:...{...switch.(rte->r
13600 74 65 6b 69 6e 64 29 00 00 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 69 66 20 tekind)......return.true;....if.
13620 28 77 61 6c 6b 65 72 28 72 74 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 69 66 20 28 66 6c 61 (walker(rte,.context))...if.(fla
13640 67 73 20 26 20 51 54 57 5f 45 58 41 4d 49 4e 45 5f 52 54 45 53 29 00 09 09 2f 2a 20 46 6f 72 20 gs.&.QTW_EXAMINE_RTES).../*.For.
13660 68 69 73 74 6f 72 69 63 61 6c 20 72 65 61 73 6f 6e 73 2c 20 76 69 73 69 74 69 6e 67 20 52 54 45 historical.reasons,.visiting.RTE
13680 73 20 69 73 20 6e 6f 74 20 74 68 65 20 64 65 66 61 75 6c 74 20 2a 2f 00 00 09 09 52 61 6e 67 65 s.is.not.the.default.*/....Range
136a0 54 62 6c 45 6e 74 72 79 20 2a 72 74 65 20 3d 20 28 52 61 6e 67 65 54 62 6c 45 6e 74 72 79 20 2a TblEntry.*rte.=.(RangeTblEntry.*
136c0 29 20 6c 66 69 72 73 74 28 72 74 29 3b 00 09 7b 00 09 66 6f 72 65 61 63 68 28 72 74 2c 20 72 74 ).lfirst(rt);..{..foreach(rt,.rt
136e0 61 62 6c 65 29 00 00 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 72 74 3b 00 7b 00 09 09 09 09 20 20 able)...ListCell...*rt;.{.......
13700 20 69 6e 74 20 66 6c 61 67 73 29 00 09 09 09 09 20 20 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 .int.flags)........void.*context
13720 2c 00 09 09 09 09 20 20 20 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 29 2c 00 72 61 6e 67 ,........bool.(*walker).(),.rang
13740 65 5f 74 61 62 6c 65 5f 77 61 6c 6b 65 72 28 4c 69 73 74 20 2a 72 74 61 62 6c 65 2c 00 62 6f 6f e_table_walker(List.*rtable,.boo
13760 6c 00 20 2a 2f 00 20 2a 20 69 74 73 20 6f 77 6e 2e 00 20 2a 20 61 20 71 75 65 72 79 27 73 20 72 l..*/..*.its.own...*.a.query's.r
13780 61 6e 67 65 74 61 62 6c 65 2e 20 20 54 68 69 73 20 69 73 20 73 70 6c 69 74 20 6f 75 74 20 73 69 angetable...This.is.split.out.si
137a0 6e 63 65 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 6f 6e 00 20 2a 20 72 61 6e 67 65 nce.it.can.be.useful.on..*.range
137c0 5f 74 61 62 6c 65 5f 77 61 6c 6b 65 72 20 69 73 20 6a 75 73 74 20 74 68 65 20 70 61 72 74 20 6f _table_walker.is.just.the.part.o
137e0 66 20 71 75 65 72 79 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 74 68 61 74 20 73 63 61 6e 73 00 2f f.query_tree_walker.that.scans./
13800 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 7d 00 09 09 09 72 65 74 75 72 6e *..}..return.false;..}....return
13820 20 74 72 75 65 3b 00 09 09 69 66 20 28 72 61 6e 67 65 5f 74 61 62 6c 65 5f 77 61 6c 6b 65 72 28 .true;...if.(range_table_walker(
13840 71 75 65 72 79 2d 3e 72 74 61 62 6c 65 2c 20 77 61 6c 6b 65 72 2c 20 63 6f 6e 74 65 78 74 2c 20 query->rtable,.walker,.context,.
13860 66 6c 61 67 73 29 29 00 09 7b 00 09 69 66 20 28 21 28 66 6c 61 67 73 20 26 20 51 54 57 5f 49 47 flags))..{..if.(!(flags.&.QTW_IG
13880 4e 4f 52 45 5f 52 41 4e 47 45 5f 54 41 42 4c 45 29 29 00 09 7d 00 09 09 09 72 65 74 75 72 6e 20 NORE_RANGE_TABLE))..}....return.
138a0 74 72 75 65 3b 00 09 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 true;...if.(walker((Node.*).quer
138c0 79 2d 3e 63 74 65 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 7b 00 09 69 66 20 28 21 28 y->cteList,.context))..{..if.(!(
138e0 66 6c 61 67 73 20 26 20 51 54 57 5f 49 47 4e 4f 52 45 5f 43 54 45 5f 53 55 42 51 55 45 52 49 45 flags.&.QTW_IGNORE_CTE_SUBQUERIE
13900 53 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 77 61 6c 6b 65 72 28 71 S))...return.true;..if.(walker(q
13920 75 65 72 79 2d 3e 6c 69 6d 69 74 43 6f 75 6e 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 uery->limitCount,.context))...re
13940 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 77 61 6c 6b 65 72 28 71 75 65 72 79 2d 3e 6c 69 turn.true;..if.(walker(query->li
13960 6d 69 74 4f 66 66 73 65 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 mitOffset,.context))...return.tr
13980 75 65 3b 00 09 69 66 20 28 77 61 6c 6b 65 72 28 71 75 65 72 79 2d 3e 68 61 76 69 6e 67 51 75 61 ue;..if.(walker(query->havingQua
139a0 6c 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 l,.context))...return.true;..if.
139c0 28 77 61 6c 6b 65 72 28 71 75 65 72 79 2d 3e 73 65 74 4f 70 65 72 61 74 69 6f 6e 73 2c 20 63 6f (walker(query->setOperations,.co
139e0 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 77 61 6c 6b ntext))...return.true;..if.(walk
13a00 65 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 2d 3e 6a 6f 69 6e 74 72 65 65 2c 20 63 6f 6e er((Node.*).query->jointree,.con
13a20 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 77 61 6c 6b 65 text))...return.true;..if.(walke
13a40 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 2d 3e 72 65 74 75 72 6e 69 6e 67 4c 69 73 74 2c r((Node.*).query->returningList,
13a60 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 77 .context))...return.true;..if.(w
13a80 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 alker((Node.*).query->onConflict
13aa0 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 69 66 20 28 ,.context))...return.true;..if.(
13ac0 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 2d 3e 77 69 74 68 43 68 65 63 6b walker((Node.*).query->withCheck
13ae0 4f 70 74 69 6f 6e 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 72 65 74 75 72 6e 20 74 72 75 65 Options,.context))...return.true
13b00 3b 00 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 2d 3e 74 61 ;..if.(walker((Node.*).query->ta
13b20 72 67 65 74 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 41 73 73 65 72 74 28 71 75 65 rgetList,.context))...Assert(que
13b40 72 79 20 21 3d 20 4e 55 4c 4c 20 26 26 20 49 73 41 28 71 75 65 72 79 2c 20 51 75 65 72 79 29 29 ry.!=.NULL.&&.IsA(query,.Query))
13b60 3b 00 7b 00 09 09 09 09 20 20 69 6e 74 20 66 6c 61 67 73 29 00 09 09 09 09 20 20 76 6f 69 64 20 ;.{.......int.flags).......void.
13b80 2a 63 6f 6e 74 65 78 74 2c 00 09 09 09 09 20 20 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 28 *context,.......bool.(*walker).(
13ba0 29 2c 00 71 75 65 72 79 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 51 75 65 72 79 20 2a 71 75 65 72 ),.query_tree_walker(Query.*quer
13bc0 79 2c 00 62 6f 6f 6c 00 20 2a 2f 00 20 2a 20 69 6e 64 69 63 61 74 65 64 20 69 74 65 6d 73 2e 20 y,.bool..*/..*.indicated.items..
13be0 20 28 4d 6f 72 65 20 66 6c 61 67 20 62 69 74 73 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 61 73 .(More.flag.bits.may.be.added.as
13c00 20 6e 65 65 64 65 64 2e 29 00 20 2a 20 77 68 69 63 68 20 69 73 20 74 68 65 20 62 69 74 77 69 73 .needed.)..*.which.is.the.bitwis
13c20 65 20 4f 52 20 6f 66 20 66 6c 61 67 20 76 61 6c 75 65 73 20 74 6f 20 73 75 70 70 72 65 73 73 20 e.OR.of.flag.values.to.suppress.
13c40 76 69 73 69 74 61 74 69 6f 6e 20 6f 66 00 20 2a 20 77 61 6e 74 20 74 6f 20 72 65 63 75 72 73 65 visitation.of..*.want.to.recurse
13c60 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 54 68 69 73 20 69 73 20 73 75 70 70 6f .into.subqueries...This.is.suppo
13c80 72 74 65 64 20 62 79 20 74 68 65 20 66 6c 61 67 73 20 61 72 67 75 6d 65 6e 74 2c 00 20 2a 20 74 rted.by.the.flags.argument,..*.t
13ca0 79 70 69 63 61 6c 6c 79 20 62 65 63 61 75 73 65 20 74 68 65 79 20 6e 65 65 64 20 74 6f 20 70 72 ypically.because.they.need.to.pr
13cc0 6f 63 65 73 73 20 74 68 65 6d 20 73 70 65 63 69 61 6c 6c 79 2c 20 6f 72 20 64 6f 6e 27 74 20 61 ocess.them.specially,.or.don't.a
13ce0 63 74 75 61 6c 6c 79 00 20 2a 20 53 6f 6d 65 20 63 61 6c 6c 65 72 73 20 77 61 6e 74 20 74 6f 20 ctually..*.Some.callers.want.to.
13d00 73 75 70 70 72 65 73 73 20 76 69 73 69 74 61 74 69 6f 6e 20 6f 66 20 63 65 72 74 61 69 6e 20 69 suppress.visitation.of.certain.i
13d20 74 65 6d 73 20 69 6e 20 74 68 65 20 73 75 62 2d 51 75 65 72 79 2c 00 20 2a 00 20 2a 20 64 65 73 tems.in.the.sub-Query,..*..*.des
13d40 63 65 6e 64 69 6e 67 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 20 77 69 74 68 69 6e 20 61 cending.into.subqueries.within.a
13d60 20 77 61 6c 6b 65 72 2e 00 20 2a 20 77 61 6c 6b 65 72 20 69 6e 74 65 6e 64 73 20 74 6f 20 64 65 .walker...*.walker.intends.to.de
13d80 73 63 65 6e 64 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 49 74 20 69 73 20 61 6c scend.into.subqueries...It.is.al
13da0 73 6f 20 75 73 65 66 75 6c 20 66 6f 72 00 20 2a 20 66 6f 72 20 73 74 61 72 74 69 6e 67 20 61 20 so.useful.for..*.for.starting.a.
13dc0 77 61 6c 6b 20 61 74 20 74 6f 70 20 6c 65 76 65 6c 20 6f 66 20 61 20 51 75 65 72 79 20 72 65 67 walk.at.top.level.of.a.Query.reg
13de0 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 00 20 2a 20 77 68 65 72 65 20 ardless.of.whether.the..*.where.
13e00 61 6c 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 62 74 72 65 65 73 20 6f 66 20 61 all.the.expression.subtrees.of.a
13e20 20 51 75 65 72 79 20 61 72 65 2e 20 20 4e 6f 74 65 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 64 .Query.are...Note.it.can.be.used
13e40 00 20 2a 20 54 68 69 73 20 72 6f 75 74 69 6e 65 20 65 78 69 73 74 73 20 6a 75 73 74 20 74 6f 20 ..*.This.routine.exists.just.to.
13e60 72 65 64 75 63 65 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 6c 61 63 65 73 20 74 68 61 74 reduce.the.number.of.places.that
13e80 20 6e 65 65 64 20 74 6f 20 6b 6e 6f 77 00 20 2a 00 20 2a 20 71 75 65 72 79 5f 74 72 65 65 5f 77 .need.to.know..*..*.query_tree_w
13ea0 61 6c 6b 65 72 20 2d 2d 2d 20 69 6e 69 74 69 61 74 65 20 61 20 77 61 6c 6b 20 6f 66 20 61 20 51 alker.---.initiate.a.walk.of.a.Q
13ec0 75 65 72 79 27 73 20 65 78 70 72 65 73 73 69 6f 6e 73 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e uery's.expressions./*..}..return
13ee0 20 66 61 6c 73 65 3b 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 20 28 69 6e 74 29 20 .false;..}....break;......(int).
13f00 6e 6f 64 65 54 61 67 28 6e 6f 64 65 29 29 3b 00 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 nodeTag(node));....elog(ERROR,."
13f20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 64 22 2c 00 09 09 64 unrecognized.node.type:.%d",...d
13f40 65 66 61 75 6c 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 efault:....break;....}......retu
13f60 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 rn.true;.....if.(walker((Node.*)
13f80 20 74 73 63 2d 3e 72 65 70 65 61 74 61 62 6c 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 .tsc->repeatable,.context)).....
13fa0 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 77 61 6c 6b 65 .return.true;..............walke
13fc0 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 69 66 20 28 65 78 70 72 65 73 73 69 6f 6e 5f r,.context)).....if.(expression_
13fe0 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 74 73 63 2d 3e 61 72 67 73 2c 00 tree_walker((Node.*).tsc->args,.
14000 61 64 00 00 03 00 00 00 7b 01 00 00 00 10 00 00 57 00 00 00 00 00 00 00 b3 0f 00 00 6b 0f 00 00 ad......{.......W...........k...
14020 3f 0f 00 00 3c 0f 00 00 06 0f 00 00 01 0f 00 00 eb 0e 00 00 d9 0e 00 00 9b 0e 00 00 83 0e 00 00 ?...<...........................
14040 7d 0e 00 00 48 0e 00 00 42 0e 00 00 25 0e 00 00 1f 0e 00 00 e7 0d 00 00 e1 0d 00 00 ab 0d 00 00 }...H...B...%...................
14060 63 0d 00 00 5e 0d 00 00 5b 0d 00 00 12 0d 00 00 c6 0c 00 00 7f 0c 00 00 30 0c 00 00 ea 0b 00 00 c...^...[...............0.......
14080 a4 0b 00 00 5e 0b 00 00 5b 0b 00 00 14 0b 00 00 ce 0a 00 00 88 0a 00 00 42 0a 00 00 fe 09 00 00 ....^...[...............B.......
140a0 df 09 00 00 dc 09 00 00 9b 09 00 00 4f 09 00 00 1b 09 00 00 18 09 00 00 cd 08 00 00 7f 08 00 00 ............O...................
140c0 31 08 00 00 e4 07 00 00 97 07 00 00 4c 07 00 00 ff 06 00 00 b1 06 00 00 65 06 00 00 62 06 00 00 1...........L...........e...b...
140e0 16 06 00 00 cb 05 00 00 7f 05 00 00 31 05 00 00 e7 04 00 00 c9 04 00 00 c5 04 00 00 c4 04 00 00 ............1...................
14100 bd 04 00 00 99 04 00 00 7e 04 00 00 69 04 00 00 67 04 00 00 63 04 00 00 18 04 00 00 eb 03 00 00 ........~...i...g...c...........
14120 e6 03 00 00 e5 03 00 00 b8 03 00 00 80 03 00 00 4f 03 00 00 4e 03 00 00 1d 03 00 00 f4 02 00 00 ................O...N...........
14140 bc 02 00 00 8b 02 00 00 8a 02 00 00 59 02 00 00 14 02 00 00 13 02 00 00 00 02 00 00 f1 01 00 00 ............Y...................
14160 f0 01 00 00 aa 01 00 00 94 01 00 00 93 01 00 00 7b 01 00 00 00 00 00 00 00 00 00 09 73 77 69 74 ................{...........swit
14180 63 68 20 28 6e 6f 64 65 54 61 67 28 6e 6f 64 65 29 29 00 00 09 63 68 65 63 6b 5f 73 74 61 63 6b ch.(nodeTag(node))...check_stack
141a0 5f 64 65 70 74 68 28 29 3b 00 09 2f 2a 20 47 75 61 72 64 20 61 67 61 69 6e 73 74 20 73 74 61 63 _depth();../*.Guard.against.stac
141c0 6b 20 6f 76 65 72 66 6c 6f 77 20 64 75 65 20 74 6f 20 6f 76 65 72 6c 79 20 63 6f 6d 70 6c 65 78 k.overflow.due.to.overly.complex
141e0 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2a 2f 00 00 09 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 00 .expressions.*/....return.NULL;.
14200 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 00 00 09 09 28 20 28 6e 65 77 66 69 65 6c .if.(node.==.NULL)....(.(newfiel
14220 64 29 20 3d 20 28 66 69 65 6c 64 74 79 70 65 29 20 6d 75 74 61 74 6f 72 28 28 4e 6f 64 65 20 2a d).=.(fieldtype).mutator((Node.*
14240 29 20 28 6f 6c 64 66 69 65 6c 64 29 2c 20 63 6f 6e 74 65 78 74 29 20 29 00 23 64 65 66 69 6e 65 ).(oldfield),.context).).#define
14260 20 4d 55 54 41 54 45 28 6e 65 77 66 69 65 6c 64 2c 20 6f 6c 64 66 69 65 6c 64 2c 20 66 69 65 6c .MUTATE(newfield,.oldfield,.fiel
14280 64 74 79 70 65 29 20 20 5c 00 00 09 20 20 6d 65 6d 63 70 79 28 28 6e 65 77 6e 6f 64 65 29 2c 20 dtype)..\.....memcpy((newnode),.
142a0 28 6e 6f 64 65 29 2c 20 73 69 7a 65 6f 66 28 6e 6f 64 65 74 79 70 65 29 29 20 29 00 09 20 20 28 (node),.sizeof(nodetype)).)....(
142c0 6e 65 77 6e 6f 64 65 29 20 3d 20 28 6e 6f 64 65 74 79 70 65 20 2a 29 20 70 61 6c 6c 6f 63 28 73 newnode).=.(nodetype.*).palloc(s
142e0 69 7a 65 6f 66 28 6e 6f 64 65 74 79 70 65 29 29 2c 20 5c 00 09 28 20 41 73 73 65 72 74 4d 61 63 izeof(nodetype)),.\..(.AssertMac
14300 72 6f 28 49 73 41 28 28 6e 6f 64 65 29 2c 20 6e 6f 64 65 74 79 70 65 29 29 2c 20 5c 00 23 64 65 ro(IsA((node),.nodetype)),.\.#de
14320 66 69 6e 65 20 43 48 45 43 4b 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6e 6f 64 65 fine.CHECKFLATCOPY(newnode,.node
14340 2c 20 6e 6f 64 65 74 79 70 65 29 09 5c 00 00 09 20 20 6d 65 6d 63 70 79 28 28 6e 65 77 6e 6f 64 ,.nodetype).\.....memcpy((newnod
14360 65 29 2c 20 28 6e 6f 64 65 29 2c 20 73 69 7a 65 6f 66 28 6e 6f 64 65 74 79 70 65 29 29 20 29 00 e),.(node),.sizeof(nodetype)).).
14380 09 28 20 28 6e 65 77 6e 6f 64 65 29 20 3d 20 28 6e 6f 64 65 74 79 70 65 20 2a 29 20 70 61 6c 6c .(.(newnode).=.(nodetype.*).pall
143a0 6f 63 28 73 69 7a 65 6f 66 28 6e 6f 64 65 74 79 70 65 29 29 2c 20 5c 00 23 64 65 66 69 6e 65 20 oc(sizeof(nodetype)),.\.#define.
143c0 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6e 6f 64 65 2c 20 6e 6f 64 65 74 79 70 65 FLATCOPY(newnode,.node,.nodetype
143e0 29 20 20 5c 00 00 09 20 2a 2f 00 09 20 2a 20 6d 75 73 74 20 63 61 6c 6c 20 74 68 65 20 6d 75 74 )..\....*/...*.must.call.the.mut
14400 61 74 6f 72 20 66 6f 72 20 61 6e 79 20 73 75 62 2d 6e 6f 64 65 73 2e 00 09 20 2a 20 54 68 65 20 ator.for.any.sub-nodes....*.The.
14420 6d 75 74 61 74 6f 72 20 68 61 73 20 61 6c 72 65 61 64 79 20 64 65 63 69 64 65 64 20 6e 6f 74 20 mutator.has.already.decided.not.
14440 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 6f 64 65 2c 20 62 75 74 20 to.modify.the.current.node,.but.
14460 77 65 00 09 2f 2a 00 7b 00 09 09 09 09 09 09 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 29 00 09 09 we../*.{.......void.*context)...
14480 09 09 09 09 4e 6f 64 65 20 2a 28 2a 6d 75 74 61 74 6f 72 29 20 28 29 2c 00 65 78 70 72 65 73 73 ....Node.*(*mutator).(),.express
144a0 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 00 4e 6f 64 ion_tree_mutator(Node.*node,.Nod
144c0 65 20 2a 00 00 20 2a 2f 00 20 2a 20 61 6e 64 20 64 6f 69 6e 67 20 74 68 65 20 72 69 67 68 74 20 e.*...*/..*.and.doing.the.right.
144e0 74 68 69 6e 67 2e 00 20 2a 20 63 61 6e 20 66 6f 72 63 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 thing...*.can.force.appropriate.
14500 62 65 68 61 76 69 6f 72 20 62 79 20 72 65 63 6f 67 6e 69 7a 69 6e 67 20 53 75 62 50 6c 61 6e 20 behavior.by.recognizing.SubPlan.
14520 65 78 70 72 65 73 73 69 6f 6e 20 6e 6f 64 65 73 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 20 74 expression.nodes..*.expression.t
14540 72 65 65 20 6d 75 74 61 74 6f 72 73 20 77 61 6e 74 2e 20 20 41 20 6d 75 74 61 74 6f 72 20 74 68 ree.mutators.want...A.mutator.th
14560 61 74 20 77 61 6e 74 73 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 73 75 62 70 6c 61 6e 00 20 at.wants.to.modify.the.subplan..
14580 2a 20 77 69 6c 6c 20 73 69 6d 70 6c 79 20 63 6f 70 79 20 74 68 65 20 6c 69 6e 6b 20 74 6f 20 74 *.will.simply.copy.the.link.to.t
145a0 68 65 20 69 6e 6e 65 72 20 70 6c 61 6e 2c 20 73 69 6e 63 65 20 74 68 61 74 27 73 20 74 79 70 69 he.inner.plan,.since.that's.typi
145c0 63 61 6c 6c 79 20 77 68 61 74 00 20 2a 20 22 74 65 73 74 65 78 70 72 22 20 61 6e 64 20 74 68 65 cally.what..*."testexpr".and.the
145e0 20 22 61 72 67 73 22 20 6c 69 73 74 20 28 77 68 69 63 68 20 62 65 6c 6f 6e 67 20 74 6f 20 74 68 ."args".list.(which.belong.to.th
14600 65 20 6f 75 74 65 72 20 70 6c 61 6e 29 2c 20 62 75 74 20 69 74 00 20 2a 20 65 78 70 72 65 73 73 e.outer.plan),.but.it..*.express
14620 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 20 77 69 6c 6c 20 68 61 6e 64 6c 65 20 61 20 53 ion_tree_mutator.will.handle.a.S
14640 75 62 50 6c 61 6e 20 6e 6f 64 65 20 62 79 20 72 65 63 75 72 73 69 6e 67 20 69 6e 74 6f 20 74 68 ubPlan.node.by.recursing.into.th
14660 65 00 20 2a 00 20 2a 20 64 6f 20 73 6f 20 62 79 20 72 65 63 6f 67 6e 69 7a 69 6e 67 20 51 75 65 e..*..*.do.so.by.recognizing.Que
14680 72 79 20 6e 6f 64 65 73 20 61 6e 64 20 63 61 6c 6c 69 6e 67 20 71 75 65 72 79 5f 74 72 65 65 5f ry.nodes.and.calling.query_tree_
146a0 6d 75 74 61 74 6f 72 20 28 62 65 6c 6f 77 29 2e 00 20 2a 20 53 75 62 4c 69 6e 6b 20 6e 6f 64 65 mutator.(below)...*.SubLink.node
146c0 2e 20 20 4d 75 74 61 74 6f 72 73 20 74 68 61 74 20 77 61 6e 74 20 74 6f 20 64 65 73 63 65 6e 64 ...Mutators.that.want.to.descend
146e0 20 69 6e 74 6f 20 73 75 62 2d 73 65 6c 65 63 74 73 20 77 69 6c 6c 20 75 73 75 61 6c 6c 79 00 20 .into.sub-selects.will.usually..
14700 2a 20 76 69 73 69 74 65 64 20 6f 72 20 6d 6f 64 69 66 69 65 64 3b 20 74 68 65 20 6f 72 69 67 69 *.visited.or.modified;.the.origi
14720 6e 61 6c 20 73 75 62 2d 73 65 6c 65 63 74 20 77 69 6c 6c 20 62 65 20 6c 69 6e 6b 65 64 20 74 6f nal.sub-select.will.be.linked.to
14740 20 62 79 20 74 68 65 20 6e 65 77 00 20 2a 20 6d 75 74 61 74 6f 72 20 64 6f 65 73 20 73 6f 6d 65 .by.the.new..*.mutator.does.some
14760 74 68 69 6e 67 20 73 70 65 63 69 61 6c 20 61 74 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c 20 73 thing.special.at.a.Query.node,.s
14780 75 62 2d 73 65 6c 65 63 74 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 00 20 2a 20 61 6e 64 20 72 65 ub-selects.will.not.be..*.and.re
147a0 74 75 72 6e 73 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 51 75 65 72 79 20 6e 6f 64 65 2e turns.the.unmodified.Query.node.
147c0 20 20 54 68 65 20 6e 65 74 20 65 66 66 65 63 74 20 69 73 20 74 68 61 74 20 75 6e 6c 65 73 73 20 ..The.net.effect.is.that.unless.
147e0 74 68 65 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 20 69 the..*.expression_tree_mutator.i
14800 74 73 65 6c 66 20 69 73 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c tself.is.called.on.a.Query.node,
14820 20 69 74 20 64 6f 65 73 20 6e 6f 74 68 69 6e 67 00 20 2a 20 70 6c 61 6e 29 2e 20 20 49 74 20 77 .it.does.nothing..*.plan)...It.w
14840 69 6c 6c 20 61 6c 73 6f 20 63 61 6c 6c 20 74 68 65 20 6d 75 74 61 74 6f 72 20 6f 6e 20 74 68 65 ill.also.call.the.mutator.on.the
14860 20 73 75 62 2d 51 75 65 72 79 20 6e 6f 64 65 3b 20 68 6f 77 65 76 65 72 2c 20 77 68 65 6e 00 20 .sub-Query.node;.however,.when..
14880 2a 20 69 6e 74 6f 20 74 68 65 20 22 74 65 73 74 65 78 70 72 22 20 73 75 62 74 72 65 65 20 28 77 *.into.the."testexpr".subtree.(w
148a0 68 69 63 68 20 69 73 20 61 6e 20 65 78 70 72 65 73 73 69 6f 6e 20 62 65 6c 6f 6e 67 69 6e 67 20 hich.is.an.expression.belonging.
148c0 74 6f 20 74 68 65 20 6f 75 74 65 72 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f to.the.outer..*.expression_tree_
148e0 6d 75 74 61 74 6f 72 20 77 69 6c 6c 20 68 61 6e 64 6c 65 20 53 75 62 4c 69 6e 6b 20 6e 6f 64 65 mutator.will.handle.SubLink.node
14900 73 20 62 79 20 72 65 63 75 72 73 69 6e 67 20 6e 6f 72 6d 61 6c 6c 79 00 20 2a 00 20 2a 20 61 6e s.by.recursing.normally..*..*.an
14920 64 20 71 75 61 6c 69 66 69 65 72 20 63 6c 61 75 73 65 73 20 64 75 72 69 6e 67 20 74 68 65 20 70 d.qualifier.clauses.during.the.p
14940 6c 61 6e 6e 69 6e 67 20 73 74 61 67 65 2e 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 lanning.stage...*.expression_tre
14960 65 5f 6d 75 74 61 74 6f 72 20 69 6e 63 6c 75 64 65 20 61 6c 6c 20 74 68 6f 73 65 20 6e 6f 72 6d e_mutator.include.all.those.norm
14980 61 6c 6c 79 20 66 6f 75 6e 64 20 69 6e 20 74 61 72 67 65 74 20 6c 69 73 74 73 00 20 2a 20 4a 75 ally.found.in.target.lists..*.Ju
149a0 73 74 20 61 73 20 66 6f 72 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 st.as.for.expression_tree_walker
149c0 2c 20 74 68 65 20 6e 6f 64 65 20 74 79 70 65 73 20 68 61 6e 64 6c 65 64 20 62 79 00 20 2a 00 20 ,.the.node.types.handled.by..*..
149e0 2a 20 74 68 61 74 20 69 74 20 68 61 73 20 6e 6f 20 69 6e 74 65 72 65 73 74 20 69 6e 2e 00 20 2a *.that.it.has.no.interest.in...*
14a00 20 63 6f 70 79 69 6e 67 20 70 72 6f 63 65 73 73 20 62 75 74 20 6e 65 65 64 20 6e 6f 74 20 64 69 .copying.process.but.need.not.di
14a20 72 65 63 74 6c 79 20 64 65 61 6c 20 77 69 74 68 20 65 78 70 72 65 73 73 69 6f 6e 20 74 72 65 65 rectly.deal.with.expression.tree
14a40 73 00 20 2a 20 6f 66 20 74 68 61 74 20 4e 6f 64 65 2e 20 20 49 6e 20 74 68 69 73 20 77 61 79 2c s..*.of.that.Node...In.this.way,
14a60 20 6d 79 5f 6d 75 74 61 74 6f 72 28 29 20 68 61 73 20 66 75 6c 6c 20 63 6f 6e 74 72 6f 6c 20 6f .my_mutator().has.full.control.o
14a80 76 65 72 20 74 68 65 00 20 2a 20 6f 66 20 74 68 65 20 67 69 76 65 6e 20 4e 6f 64 65 2c 20 62 75 ver.the..*.of.the.given.Node,.bu
14aa0 74 20 69 6e 76 6f 6b 65 20 6d 79 5f 6d 75 74 61 74 6f 72 28 29 20 74 6f 20 63 6f 70 79 20 74 68 t.invoke.my_mutator().to.copy.th
14ac0 65 20 73 75 62 2d 6e 6f 64 65 28 73 29 00 20 2a 20 49 66 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 e.sub-node(s)..*.If.expression_t
14ae0 72 65 65 5f 6d 75 74 61 74 6f 72 28 29 20 69 73 20 63 61 6c 6c 65 64 2c 20 69 74 20 77 69 6c 6c ree_mutator().is.called,.it.will
14b00 20 6d 61 6b 65 20 61 6e 20 65 78 61 63 74 20 63 6f 70 79 00 20 2a 20 45 61 63 68 20 6c 65 76 65 .make.an.exact.copy..*.Each.leve
14b20 6c 20 6f 66 20 72 65 63 75 72 73 69 6f 6e 20 6d 75 73 74 20 72 65 74 75 72 6e 20 61 6e 20 61 70 l.of.recursion.must.return.an.ap
14b40 70 72 6f 70 72 69 61 74 65 6c 79 20 6d 6f 64 69 66 69 65 64 20 4e 6f 64 65 2e 00 20 2a 00 20 2a propriately.modified.Node...*..*
14b60 20 74 6f 70 2d 6c 65 76 65 6c 20 6e 6f 64 65 20 6f 66 20 74 68 65 20 74 72 65 65 2c 20 61 6e 64 .top-level.node.of.the.tree,.and
14b80 20 64 6f 65 73 20 61 6e 79 20 72 65 71 75 69 72 65 64 20 70 6f 73 74 2d 70 72 6f 63 65 73 73 69 .does.any.required.post-processi
14ba0 6e 67 2e 00 20 2a 20 66 69 6c 6c 73 20 69 6e 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 ng...*.fills.in.the.appropriate.
14bc0 63 6f 6e 74 65 78 74 20 73 74 72 75 63 74 2c 20 63 61 6c 6c 73 20 6d 79 5f 6d 75 74 61 74 6f 72 context.struct,.calls.my_mutator
14be0 20 77 69 74 68 20 74 68 65 00 20 2a 20 6f 66 20 6d 79 5f 6d 75 74 61 74 6f 72 2e 20 20 54 68 65 .with.the..*.of.my_mutator...The
14c00 20 74 72 65 65 20 77 61 6c 6b 20 69 73 20 73 74 61 72 74 65 64 20 66 72 6f 6d 20 61 20 73 65 74 .tree.walk.is.started.from.a.set
14c20 75 70 20 72 6f 75 74 69 6e 65 20 74 68 61 74 00 20 2a 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 up.routine.that..*.expression_tr
14c40 65 65 5f 6d 75 74 61 74 6f 72 2c 20 62 75 74 20 69 74 20 69 73 20 70 61 73 73 65 64 20 64 6f 77 ee_mutator,.but.it.is.passed.dow
14c60 6e 20 74 6f 20 72 65 63 75 72 73 69 76 65 20 73 75 62 2d 69 6e 76 6f 63 61 74 69 6f 6e 73 00 20 n.to.recursive.sub-invocations..
14c80 2a 20 64 61 74 61 20 67 61 74 68 65 72 65 64 20 62 79 20 74 68 65 20 6d 75 74 61 74 6f 72 2c 20 *.data.gathered.by.the.mutator,.
14ca0 74 6f 6f 2e 20 20 54 68 69 73 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6e 6f 74 20 74 6f 75 63 68 too...This.argument.is.not.touch
14cc0 65 64 20 62 79 00 20 2a 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 68 65 20 6d 75 74 61 74 6f 72 ed.by..*.information.the.mutator
14ce0 20 72 6f 75 74 69 6e 65 20 6e 65 65 64 73 20 2d 2d 2d 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 .routine.needs.---.it.can.be.use
14d00 64 20 74 6f 20 72 65 74 75 72 6e 20 65 78 74 72 61 00 20 2a 20 54 68 65 20 22 63 6f 6e 74 65 78 d.to.return.extra..*.The."contex
14d20 74 22 20 61 72 67 75 6d 65 6e 74 20 70 6f 69 6e 74 73 20 74 6f 20 61 20 73 74 72 75 63 74 20 74 t".argument.points.to.a.struct.t
14d40 68 61 74 20 68 6f 6c 64 73 20 77 68 61 74 65 76 65 72 20 63 6f 6e 74 65 78 74 00 20 2a 00 20 2a hat.holds.whatever.context..*..*
14d60 20 7d 00 20 2a 09 09 72 65 74 75 72 6e 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d 75 .}..*..return.expression_tree_mu
14d80 74 61 74 6f 72 28 6e 6f 64 65 2c 20 6d 79 5f 6d 75 74 61 74 6f 72 2c 20 28 76 6f 69 64 20 2a 29 tator(node,.my_mutator,.(void.*)
14da0 20 63 6f 6e 74 65 78 74 29 3b 00 20 2a 09 09 2f 2f 20 66 6f 72 20 61 6e 79 20 6e 6f 64 65 20 74 .context);..*..//.for.any.node.t
14dc0 79 70 65 20 6e 6f 74 20 73 70 65 63 69 61 6c 6c 79 20 70 72 6f 63 65 73 73 65 64 2c 20 64 6f 3a ype.not.specially.processed,.do:
14de0 00 20 2a 09 09 7d 00 20 2a 09 09 09 2e 2e 2e 20 64 6f 20 73 70 65 63 69 61 6c 20 74 72 61 6e 73 ..*..}..*.......do.special.trans
14e00 66 6f 72 6d 61 74 69 6f 6e 73 20 6f 66 20 6f 74 68 65 72 20 6e 6f 64 65 20 74 79 70 65 73 00 20 formations.of.other.node.types..
14e20 2a 09 09 7b 00 20 2a 09 09 65 6c 73 65 20 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 2e 2e 2e 29 *..{..*..else.if.(IsA(node,....)
14e40 29 00 20 2a 09 09 7d 00 20 2a 09 09 09 2e 2e 2e 20 63 72 65 61 74 65 20 61 6e 64 20 72 65 74 75 )..*..}..*.......create.and.retu
14e60 72 6e 20 6d 6f 64 69 66 69 65 64 20 63 6f 70 79 20 6f 66 20 56 61 72 20 6e 6f 64 65 00 20 2a 09 rn.modified.copy.of.Var.node..*.
14e80 09 7b 00 20 2a 09 09 69 66 20 28 49 73 41 28 6e 6f 64 65 2c 20 56 61 72 29 29 00 20 2a 09 09 2f .{..*..if.(IsA(node,.Var))..*../
14ea0 2f 20 63 68 65 63 6b 20 66 6f 72 20 6e 6f 64 65 73 20 74 68 61 74 20 73 70 65 63 69 61 6c 20 77 /.check.for.nodes.that.special.w
14ec0 6f 72 6b 20 69 73 20 72 65 71 75 69 72 65 64 20 66 6f 72 2c 20 65 67 3a 00 20 2a 09 09 09 72 65 ork.is.required.for,.eg:..*...re
14ee0 74 75 72 6e 20 4e 55 4c 4c 3b 00 20 2a 09 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e 55 4c 4c 29 turn.NULL;..*..if.(node.==.NULL)
14f00 00 20 2a 20 7b 00 20 2a 20 4e 6f 64 65 20 2a 20 6d 79 5f 6d 75 74 61 74 6f 72 20 28 4e 6f 64 65 ..*.{..*.Node.*.my_mutator.(Node
14f20 20 2a 6e 6f 64 65 2c 20 6d 79 5f 73 74 72 75 63 74 20 2a 63 6f 6e 74 65 78 74 29 00 20 2a 00 20 .*node,.my_struct.*context)..*..
14f40 2a 20 41 20 6d 75 74 61 74 6f 72 20 72 6f 75 74 69 6e 65 20 73 68 6f 75 6c 64 20 6c 6f 6f 6b 20 *.A.mutator.routine.should.look.
14f60 6c 69 6b 65 20 74 68 69 73 3a 00 20 2a 20 28 6f 72 20 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 like.this:..*.(or.appropriately.
14f80 6d 6f 64 69 66 69 65 64 20 73 75 62 73 74 69 74 75 74 65 20 66 6f 72 29 20 74 68 65 20 73 75 62 modified.substitute.for).the.sub
14fa0 74 72 65 65 20 69 74 20 69 73 20 68 61 6e 64 65 64 2e 00 20 2a 20 6e 6f 74 20 63 68 61 6e 67 65 tree.it.is.handed...*.not.change
14fc0 64 2e 20 20 45 61 63 68 20 72 65 63 75 72 73 69 6f 6e 20 6c 65 76 65 6c 20 69 73 20 72 65 73 70 d...Each.recursion.level.is.resp
14fe0 6f 6e 73 69 62 6c 65 20 66 6f 72 20 72 65 74 75 72 6e 69 6e 67 20 61 20 63 6f 70 79 20 6f 66 00 onsible.for.returning.a.copy.of.
15000 61 64 00 00 01 00 00 00 2d 02 00 00 00 10 00 00 84 00 00 00 00 00 00 00 fd 0f 00 00 f7 0f 00 00 ad......-.......................
15020 b6 0f 00 00 71 0f 00 00 4f 0f 00 00 48 0f 00 00 3a 0f 00 00 35 0f 00 00 14 0f 00 00 fe 0e 00 00 ....q...O...H...:...5...........
15040 fd 0e 00 00 dc 0e 00 00 bf 0e 00 00 ba 0e 00 00 b0 0e 00 00 a0 0e 00 00 9b 0e 00 00 73 0e 00 00 ............................s...
15060 5c 0e 00 00 5b 0e 00 00 34 0e 00 00 fb 0d 00 00 de 0d 00 00 d9 0d 00 00 cf 0d 00 00 bf 0d 00 00 \...[...4.......................
15080 a1 0d 00 00 8a 0d 00 00 73 0d 00 00 5b 0d 00 00 45 0d 00 00 2b 0d 00 00 06 0d 00 00 ec 0c 00 00 ........s...[...E...+...........
150a0 e7 0c 00 00 b2 0c 00 00 94 0c 00 00 93 0c 00 00 66 0c 00 00 38 0c 00 00 1b 0c 00 00 16 0c 00 00 ................f...8...........
150c0 05 0c 00 00 00 0c 00 00 d7 0b 00 00 bf 0b 00 00 be 0b 00 00 97 0b 00 00 54 0b 00 00 23 0b 00 00 ........................T...#...
150e0 ea 0a 00 00 ab 0a 00 00 70 0a 00 00 53 0a 00 00 4e 0a 00 00 44 0a 00 00 2d 0a 00 00 28 0a 00 00 ........p...S...N...D...-...(...
15100 f4 09 00 00 d9 09 00 00 d8 09 00 00 a9 09 00 00 76 09 00 00 75 09 00 00 6e 09 00 00 2c 09 00 00 ................v...u...n...,...
15120 e9 08 00 00 ac 08 00 00 6d 08 00 00 66 08 00 00 26 08 00 00 e9 07 00 00 e1 07 00 00 b2 07 00 00 ........m...f...&...............
15140 83 07 00 00 82 07 00 00 65 07 00 00 60 07 00 00 56 07 00 00 41 07 00 00 3c 07 00 00 0f 07 00 00 ........e...`...V...A...<.......
15160 f6 06 00 00 f5 06 00 00 cb 06 00 00 9b 06 00 00 61 06 00 00 44 06 00 00 3f 06 00 00 35 06 00 00 ................a...D...?...5...
15180 22 06 00 00 1d 06 00 00 ef 05 00 00 d6 05 00 00 d5 05 00 00 aa 05 00 00 6a 05 00 00 59 05 00 00 ".......................j...Y...
151a0 19 05 00 00 08 05 00 00 d8 04 00 00 c7 04 00 00 8d 04 00 00 7c 04 00 00 5f 04 00 00 5a 04 00 00 ....................|..._...Z...
151c0 50 04 00 00 3d 04 00 00 38 04 00 00 0e 04 00 00 f5 03 00 00 f4 03 00 00 cd 03 00 00 9e 03 00 00 P...=...8.......................
151e0 81 03 00 00 7c 03 00 00 72 03 00 00 5b 03 00 00 56 03 00 00 25 03 00 00 0a 03 00 00 09 03 00 00 ....|...r...[...V...%...........
15200 dd 02 00 00 af 02 00 00 92 02 00 00 8d 02 00 00 83 02 00 00 72 02 00 00 6d 02 00 00 46 02 00 00 ....................r...m...F...
15220 2e 02 00 00 2d 02 00 00 00 00 00 00 00 00 09 09 09 09 4f 70 45 78 70 72 09 20 20 20 2a 6e 65 77 ....-.............OpExpr....*new
15240 6e 6f 64 65 3b 00 09 09 09 09 4f 70 45 78 70 72 09 20 20 20 2a 65 78 70 72 20 3d 20 28 4f 70 45 node;.....OpExpr....*expr.=.(OpE
15260 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4f 70 45 78 70 xpr.*).node;....{...case.T_OpExp
15280 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f r:....break;....}.....return.(No
152a0 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 de.*).newnode;.....MUTATE(newnod
152c0 65 2d 3e 61 72 67 2c 20 6e 65 78 70 72 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 e->arg,.nexpr->arg,.Expr.*);....
152e0 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6e 65 78 70 72 2c 20 4e 61 6d 65 64 41 .FLATCOPY(newnode,.nexpr,.NamedA
15300 72 67 45 78 70 72 29 3b 00 00 09 09 09 09 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 6e 65 77 6e rgExpr);......NamedArgExpr.*newn
15320 6f 64 65 3b 00 09 09 09 09 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 6e 65 78 70 72 20 3d 20 28 ode;.....NamedArgExpr.*nexpr.=.(
15340 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 NamedArgExpr.*).node;....{...cas
15360 65 20 54 5f 4e 61 6d 65 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d e.T_NamedArgExpr:....break;....}
15380 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 .....return.(Node.*).newnode;...
153a0 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 ..MUTATE(newnode->args,.expr->ar
153c0 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 gs,.List.*);.....FLATCOPY(newnod
153e0 65 2c 20 65 78 70 72 2c 20 46 75 6e 63 45 78 70 72 29 3b 00 00 09 09 09 09 46 75 6e 63 45 78 70 e,.expr,.FuncExpr);......FuncExp
15400 72 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 46 75 6e 63 45 78 70 72 20 20 20 2a 65 78 r...*newnode;.....FuncExpr...*ex
15420 70 72 20 3d 20 28 46 75 6e 63 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 pr.=.(FuncExpr.*).node;....{...c
15440 61 73 65 20 54 5f 46 75 6e 63 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 ase.T_FuncExpr:....break;....}..
15460 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 ...return.(Node.*).newnode;.....
15480 09 20 20 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d ....Expr.*);.....MUTATE(newnode-
154a0 3e 72 65 66 61 73 73 67 6e 65 78 70 72 2c 20 61 72 72 61 79 72 65 66 2d 3e 72 65 66 61 73 73 67 >refassgnexpr,.arrayref->refassg
154c0 6e 65 78 70 72 2c 00 09 09 09 09 09 20 20 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 nexpr,.........Expr.*);.....MUTA
154e0 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 65 66 65 78 70 72 2c 20 61 72 72 61 79 72 65 66 2d 3e 72 TE(newnode->refexpr,.arrayref->r
15500 65 66 65 78 70 72 2c 00 09 09 09 09 09 20 20 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 efexpr,.........List.*);.....MUT
15520 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 65 66 6c 6f 77 65 72 69 6e 64 65 78 70 72 2c 20 61 72 ATE(newnode->reflowerindexpr,.ar
15540 72 61 79 72 65 66 2d 3e 72 65 66 6c 6f 77 65 72 69 6e 64 65 78 70 72 2c 00 09 09 09 09 09 20 20 rayref->reflowerindexpr,........
15560 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 65 .List.*);.....MUTATE(newnode->re
15580 66 75 70 70 65 72 69 6e 64 65 78 70 72 2c 20 61 72 72 61 79 72 65 66 2d 3e 72 65 66 75 70 70 65 fupperindexpr,.arrayref->refuppe
155a0 72 69 6e 64 65 78 70 72 2c 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 rindexpr,.....FLATCOPY(newnode,.
155c0 61 72 72 61 79 72 65 66 2c 20 41 72 72 61 79 52 65 66 29 3b 00 00 09 09 09 09 41 72 72 61 79 52 arrayref,.ArrayRef);......ArrayR
155e0 65 66 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 41 72 72 61 79 52 65 66 20 20 20 2a 61 ef...*newnode;.....ArrayRef...*a
15600 72 72 61 79 72 65 66 20 3d 20 28 41 72 72 61 79 52 65 66 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 rrayref.=.(ArrayRef.*).node;....
15620 7b 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 {...case.T_ArrayRef:....break;..
15640 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b ..}.....return.(Node.*).newnode;
15660 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 67 67 66 69 6c 74 65 72 2c 20 .....MUTATE(newnode->aggfilter,.
15680 77 66 75 6e 63 2d 3e 61 67 67 66 69 6c 74 65 72 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d wfunc->aggfilter,.Expr.*);.....M
156a0 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 77 66 75 6e 63 2d 3e 61 72 67 73 UTATE(newnode->args,.wfunc->args
156c0 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c ,.List.*);.....FLATCOPY(newnode,
156e0 20 77 66 75 6e 63 2c 20 57 69 6e 64 6f 77 46 75 6e 63 29 3b 00 00 09 09 09 09 57 69 6e 64 6f 77 .wfunc,.WindowFunc);......Window
15700 46 75 6e 63 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 57 69 6e 64 6f 77 46 75 6e 63 20 2a 77 Func.*newnode;.....WindowFunc.*w
15720 66 75 6e 63 20 3d 20 28 57 69 6e 64 6f 77 46 75 6e 63 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b func.=.(WindowFunc.*).node;....{
15740 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 46 75 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 ...case.T_WindowFunc:....break;.
15760 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 ...}.....return.(Node.*).newnode
15780 3b 00 00 09 09 09 09 6e 65 77 6e 6f 64 65 2d 3e 63 6f 6c 73 20 3d 20 6c 69 73 74 5f 63 6f 70 79 ;......newnode->cols.=.list_copy
157a0 28 67 72 6f 75 70 69 6e 67 2d 3e 63 6f 6c 73 29 3b 00 09 09 09 09 6e 65 77 6e 6f 64 65 2d 3e 72 (grouping->cols);.....newnode->r
157c0 65 66 73 20 3d 20 6c 69 73 74 5f 63 6f 70 79 28 67 72 6f 75 70 69 6e 67 2d 3e 72 65 66 73 29 3b efs.=.list_copy(grouping->refs);
157e0 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 68 61 6e 64 6c 65 20 74 68 65 20 72 65 66 73 20 ......*/......*.handle.the.refs.
15800 61 6e 64 20 63 6f 6c 73 20 6c 69 73 74 73 20 69 74 73 65 6c 66 20 61 73 20 61 70 70 72 6f 70 72 and.cols.lists.itself.as.appropr
15820 69 61 74 65 2e 00 09 09 09 09 20 2a 20 49 66 20 61 20 6d 75 74 61 74 6f 72 20 73 6f 6d 65 68 6f iate.......*.If.a.mutator.someho
15840 77 20 77 61 6e 74 65 64 20 74 6f 20 64 6f 20 74 68 69 73 2c 20 69 74 20 77 6f 75 6c 64 20 68 61 w.wanted.to.do.this,.it.would.ha
15860 76 65 20 74 6f 00 09 09 09 09 20 2a 00 09 09 09 09 20 2a 20 70 72 65 76 69 6f 75 73 6c 79 20 6d ve.to......*......*.previously.m
15880 61 74 63 68 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 73 20 69 6e 20 74 68 65 20 47 52 4f 55 50 atching.expressions.in.the.GROUP
158a0 20 42 59 20 63 6c 61 75 73 65 2e 00 09 09 09 09 20 2a 20 77 61 79 20 74 68 61 74 20 6d 61 6b 65 .BY.clause.......*.way.that.make
158c0 73 20 74 68 65 6d 20 73 65 6d 61 6e 74 69 63 61 6c 6c 79 20 64 69 66 66 65 72 65 6e 74 20 66 72 s.them.semantically.different.fr
158e0 6f 6d 20 74 68 65 69 72 00 09 09 09 09 20 2a 20 74 68 65 20 73 65 6d 61 6e 74 69 63 73 2c 20 69 om.their......*.the.semantics,.i
15900 2e 65 2e 20 74 68 61 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 6e 6f 74 20 6d .e..that.the.arguments.are.not.m
15920 75 74 61 74 65 64 20 69 6e 20 61 00 09 09 09 09 20 2a 20 57 65 20 61 73 73 75 6d 65 20 68 65 72 utated.in.a......*.We.assume.her
15940 65 20 74 68 61 74 20 6d 75 74 61 74 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 64 6f e.that.mutating.the.arguments.do
15960 65 73 20 6e 6f 74 20 63 68 61 6e 67 65 00 09 09 09 09 2f 2a 00 00 09 09 09 09 4d 55 54 41 54 45 es.not.change...../*......MUTATE
15980 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 67 72 6f 75 70 69 6e 67 2d 3e 61 72 67 73 2c 20 (newnode->args,.grouping->args,.
159a0 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 67 List.*);.....FLATCOPY(newnode,.g
159c0 72 6f 75 70 69 6e 67 2c 20 47 72 6f 75 70 69 6e 67 46 75 6e 63 29 3b 00 00 09 09 09 09 47 72 6f rouping,.GroupingFunc);......Gro
159e0 75 70 69 6e 67 46 75 6e 63 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 47 72 6f 75 70 69 6e 67 upingFunc.*newnode;.....Grouping
15a00 46 75 6e 63 20 2a 67 72 6f 75 70 69 6e 67 20 3d 20 28 47 72 6f 75 70 69 6e 67 46 75 6e 63 20 2a Func.*grouping.=.(GroupingFunc.*
15a20 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 46 75 ).node;....{...case.T_GroupingFu
15a40 6e 63 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e nc:....break;....}.....return.(N
15a60 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f ode.*).newnode;.....MUTATE(newno
15a80 64 65 2d 3e 61 67 67 66 69 6c 74 65 72 2c 20 61 67 67 72 65 66 2d 3e 61 67 67 66 69 6c 74 65 72 de->aggfilter,.aggref->aggfilter
15aa0 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 ,.Expr.*);.....MUTATE(newnode->a
15ac0 67 67 64 69 73 74 69 6e 63 74 2c 20 61 67 67 72 65 66 2d 3e 61 67 67 64 69 73 74 69 6e 63 74 2c ggdistinct,.aggref->aggdistinct,
15ae0 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 67 .List.*);.....MUTATE(newnode->ag
15b00 67 6f 72 64 65 72 2c 20 61 67 67 72 65 66 2d 3e 61 67 67 6f 72 64 65 72 2c 20 4c 69 73 74 20 2a gorder,.aggref->aggorder,.List.*
15b20 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 61 67 67 );.....MUTATE(newnode->args,.agg
15b40 72 65 66 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e ref->args,.List.*);.....MUTATE(n
15b60 65 77 6e 6f 64 65 2d 3e 61 67 67 64 69 72 65 63 74 61 72 67 73 2c 20 61 67 67 72 65 66 2d 3e 61 ewnode->aggdirectargs,.aggref->a
15b80 67 67 64 69 72 65 63 74 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 ggdirectargs,.List.*);.....FLATC
15ba0 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 61 67 67 72 65 66 2c 20 41 67 67 72 65 66 29 3b 00 00 09 OPY(newnode,.aggref,.Aggref);...
15bc0 09 09 09 41 67 67 72 65 66 09 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 41 67 67 72 65 ...Aggref....*newnode;.....Aggre
15be0 66 09 20 20 20 2a 61 67 67 72 65 66 20 3d 20 28 41 67 67 72 65 66 20 2a 29 20 6e 6f 64 65 3b 00 f....*aggref.=.(Aggref.*).node;.
15c00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 67 67 72 65 66 3a 00 09 09 09 7d 00 09 09 09 09 72 ...{...case.T_Aggref:....}.....r
15c20 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 eturn.(Node.*).newnode;.....MUTA
15c40 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 71 75 61 6c 2c 20 77 63 6f 2d 3e 71 75 61 6c 2c 20 4e 6f 64 TE(newnode->qual,.wco->qual,.Nod
15c60 65 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 77 63 6f 2c e.*);.....FLATCOPY(newnode,.wco,
15c80 20 57 69 74 68 43 68 65 63 6b 4f 70 74 69 6f 6e 29 3b 00 00 09 09 09 09 57 69 74 68 43 68 65 63 .WithCheckOption);......WithChec
15ca0 6b 4f 70 74 69 6f 6e 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 57 69 74 68 43 68 65 63 6b 4f kOption.*newnode;.....WithCheckO
15cc0 70 74 69 6f 6e 20 2a 77 63 6f 20 3d 20 28 57 69 74 68 43 68 65 63 6b 4f 70 74 69 6f 6e 20 2a 29 ption.*wco.=.(WithCheckOption.*)
15ce0 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 57 69 74 68 43 68 65 63 6b 4f 70 .node;....{...case.T_WithCheckOp
15d00 74 69 6f 6e 3a 00 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 63 6f 70 79 4f 62 6a tion:....return.(Node.*).copyObj
15d20 65 63 74 28 6e 6f 64 65 29 3b 00 09 09 63 61 73 65 20 54 5f 53 6f 72 74 47 72 6f 75 70 43 6c 61 ect(node);...case.T_SortGroupCla
15d40 75 73 65 3a 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 54 62 6c 52 65 66 3a 00 09 09 63 61 73 use:...case.T_RangeTblRef:...cas
15d60 65 20 54 5f 43 75 72 72 65 6e 74 4f 66 45 78 70 72 3a 00 09 09 63 61 73 65 20 54 5f 53 65 74 54 e.T_CurrentOfExpr:...case.T_SetT
15d80 6f 44 65 66 61 75 6c 74 3a 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 54 65 73 74 45 78 70 72 3a oDefault:...case.T_CaseTestExpr:
15da0 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 56 61 6c 75 65 3a 00 09 ...case.T_CoerceToDomainValue:..
15dc0 09 63 61 73 65 20 54 5f 50 61 72 61 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 .case.T_Param:....break;....}...
15de0 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f ..return.(Node.*).newnode;...../
15e00 2a 20 58 58 58 20 77 65 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 77 69 74 68 20 64 61 74 75 6d *.XXX.we.don't.bother.with.datum
15e20 43 6f 70 79 3b 20 73 68 6f 75 6c 64 20 77 65 3f 20 2a 2f 00 09 09 09 09 46 4c 41 54 43 4f 50 59 Copy;.should.we?.*/.....FLATCOPY
15e40 28 6e 65 77 6e 6f 64 65 2c 20 6f 6c 64 6e 6f 64 65 2c 20 43 6f 6e 73 74 29 3b 00 00 09 09 09 09 (newnode,.oldnode,.Const);......
15e60 43 6f 6e 73 74 09 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 6f 6e 73 74 09 20 20 20 Const....*newnode;.....Const....
15e80 2a 6f 6c 64 6e 6f 64 65 20 3d 20 28 43 6f 6e 73 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 *oldnode.=.(Const.*).node;....{.
15ea0 09 09 63 61 73 65 20 54 5f 43 6f 6e 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 ..case.T_Const:....break;....}..
15ec0 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 ...return.(Node.*).newnode;.....
15ee0 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 76 61 72 2c 20 56 61 72 29 3b 00 00 09 09 FLATCOPY(newnode,.var,.Var);....
15f00 09 09 56 61 72 09 09 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 56 61 72 09 09 20 20 20 ..Var.....*newnode;.....Var.....
15f20 2a 76 61 72 20 3d 20 28 56 61 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 *var.=.(Var.*).node;....{...case
15f40 20 54 5f 56 61 72 3a 00 09 09 09 20 2a 2f 00 09 09 09 20 2a 20 77 65 20 6a 75 73 74 20 75 73 65 .T_Var:.....*/.....*.we.just.use
15f60 20 63 6f 70 79 4f 62 6a 65 63 74 20 66 6f 72 2e 00 09 09 09 20 2a 20 43 6f 6e 73 74 20 61 72 65 .copyObject.for......*.Const.are
15f80 20 66 72 65 71 75 65 6e 74 20 65 6e 6f 75 67 68 20 74 6f 20 64 65 73 65 72 76 65 20 73 70 65 63 .frequent.enough.to.deserve.spec
15fa0 69 61 6c 20 63 61 73 65 73 2c 20 74 68 65 20 6f 74 68 65 72 73 00 09 09 09 20 2a 20 50 72 69 6d ial.cases,.the.others.....*.Prim
15fc0 69 74 69 76 65 20 6e 6f 64 65 20 74 79 70 65 73 20 77 69 74 68 20 6e 6f 20 65 78 70 72 65 73 73 itive.node.types.with.no.express
15fe0 69 6f 6e 20 73 75 62 6e 6f 64 65 73 2e 20 20 56 61 72 20 61 6e 64 00 09 09 09 2f 2a 00 09 7b 00 ion.subnodes...Var.and..../*..{.
16000 61 64 00 00 0f 00 00 00 43 02 00 00 00 10 00 00 86 00 00 00 00 00 00 00 db 0f 00 00 ac 0f 00 00 ad......C.......................
16020 8f 0f 00 00 8a 0f 00 00 80 0f 00 00 69 0f 00 00 64 0f 00 00 34 0f 00 00 19 0f 00 00 18 0f 00 00 ............i...d...4...........
16040 ed 0e 00 00 be 0e 00 00 a1 0e 00 00 9c 0e 00 00 92 0e 00 00 7d 0e 00 00 78 0e 00 00 4c 0e 00 00 ....................}...x...L...
16060 33 0e 00 00 32 0e 00 00 09 0e 00 00 da 0d 00 00 bd 0d 00 00 b8 0d 00 00 ae 0d 00 00 92 0d 00 00 3...2...........................
16080 8d 0d 00 00 53 0d 00 00 33 0d 00 00 32 0d 00 00 02 0d 00 00 d3 0c 00 00 b6 0c 00 00 b1 0c 00 00 ....S...3...2...................
160a0 a7 0c 00 00 94 0c 00 00 8f 0c 00 00 65 0c 00 00 4c 0c 00 00 4b 0c 00 00 24 0c 00 00 f5 0b 00 00 ............e...L...K...$.......
160c0 d8 0b 00 00 d3 0b 00 00 c9 0b 00 00 b7 0b 00 00 b2 0b 00 00 86 0b 00 00 6d 0b 00 00 6c 0b 00 00 ........................m...l...
160e0 43 0b 00 00 09 0b 00 00 08 0b 00 00 01 0b 00 00 bf 0a 00 00 89 0a 00 00 81 0a 00 00 45 0a 00 00 C...........................E...
16100 28 0a 00 00 23 0a 00 00 19 0a 00 00 07 0a 00 00 02 0a 00 00 d6 09 00 00 bd 09 00 00 bc 09 00 00 (...#...........................
16120 93 09 00 00 76 09 00 00 3c 09 00 00 fd 08 00 00 cb 08 00 00 8a 08 00 00 6d 08 00 00 68 08 00 00 ....v...<...............m...h...
16140 5e 08 00 00 41 08 00 00 3c 08 00 00 fe 07 00 00 dd 07 00 00 dc 07 00 00 a9 07 00 00 70 07 00 00 ^...A...<...................p...
16160 53 07 00 00 4e 07 00 00 44 07 00 00 2e 07 00 00 29 07 00 00 f8 06 00 00 de 06 00 00 dd 06 00 00 S...N...D.......)...............
16180 b0 06 00 00 80 06 00 00 63 06 00 00 5e 06 00 00 54 06 00 00 3f 06 00 00 3a 06 00 00 0c 06 00 00 ........c...^...T...?...:.......
161a0 f3 05 00 00 f2 05 00 00 c7 05 00 00 98 05 00 00 61 05 00 00 2a 05 00 00 0d 05 00 00 08 05 00 00 ................a...*...........
161c0 fe 04 00 00 e8 04 00 00 e3 04 00 00 b2 04 00 00 98 04 00 00 97 04 00 00 6a 04 00 00 3a 04 00 00 ........................j...:...
161e0 1d 04 00 00 18 04 00 00 0e 04 00 00 f8 03 00 00 f3 03 00 00 c1 03 00 00 a7 03 00 00 a6 03 00 00 ................................
16200 78 03 00 00 47 03 00 00 2a 03 00 00 25 03 00 00 1b 03 00 00 01 03 00 00 fc 02 00 00 c3 02 00 00 x...G...*...%...................
16220 a5 02 00 00 a4 02 00 00 73 02 00 00 43 02 00 00 42 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........s...C...B...............
16240 00 00 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 61 63 6f 65 .......MUTATE(newnode->arg,.acoe
16260 72 63 65 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 rce->arg,.Expr.*);.....FLATCOPY(
16280 6e 65 77 6e 6f 64 65 2c 20 61 63 6f 65 72 63 65 2c 20 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 newnode,.acoerce,.ArrayCoerceExp
162a0 72 29 3b 00 00 09 09 09 09 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 6e 65 77 6e 6f 64 r);......ArrayCoerceExpr.*newnod
162c0 65 3b 00 09 09 09 09 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 61 63 6f 65 72 63 65 20 e;.....ArrayCoerceExpr.*acoerce.
162e0 3d 20 28 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b =.(ArrayCoerceExpr.*).node;....{
16300 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 43 6f 65 72 63 65 45 78 70 72 3a 00 09 09 09 62 72 ...case.T_ArrayCoerceExpr:....br
16320 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 eak;....}.....return.(Node.*).ne
16340 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 wnode;.....MUTATE(newnode->arg,.
16360 69 6f 63 6f 65 72 63 65 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 iocoerce->arg,.Expr.*);.....FLAT
16380 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 69 6f 63 6f 65 72 63 65 2c 20 43 6f 65 72 63 65 56 69 COPY(newnode,.iocoerce,.CoerceVi
163a0 61 49 4f 29 3b 00 00 09 09 09 09 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 6e 65 77 6e 6f 64 65 3b aIO);......CoerceViaIO.*newnode;
163c0 00 09 09 09 09 43 6f 65 72 63 65 56 69 61 49 4f 20 2a 69 6f 63 6f 65 72 63 65 20 3d 20 28 43 6f .....CoerceViaIO.*iocoerce.=.(Co
163e0 65 72 63 65 56 69 61 49 4f 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 erceViaIO.*).node;....{...case.T
16400 5f 43 6f 65 72 63 65 56 69 61 49 4f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 _CoerceViaIO:....break;....}....
16420 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 .return.(Node.*).newnode;.....MU
16440 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 72 65 6c 61 62 65 6c 2d 3e 61 72 67 2c TATE(newnode->arg,.relabel->arg,
16460 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 .Expr.*);.....FLATCOPY(newnode,.
16480 72 65 6c 61 62 65 6c 2c 20 52 65 6c 61 62 65 6c 54 79 70 65 29 3b 00 00 09 09 09 09 52 65 6c 61 relabel,.RelabelType);......Rela
164a0 62 65 6c 54 79 70 65 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 52 65 6c 61 62 65 6c 54 79 70 belType.*newnode;.....RelabelTyp
164c0 65 20 2a 72 65 6c 61 62 65 6c 20 3d 20 28 52 65 6c 61 62 65 6c 54 79 70 65 20 2a 29 20 6e 6f 64 e.*relabel.=.(RelabelType.*).nod
164e0 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 65 6c 61 62 65 6c 54 79 70 65 3a 00 09 09 e;....{...case.T_RelabelType:...
16500 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 .break;....}.....return.(Node.*)
16520 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 6e 65 77 6e 6f 64 65 2d 3e 66 69 65 6c 64 6e 75 6d 73 .newnode;.....newnode->fieldnums
16540 20 3d 20 6c 69 73 74 5f 63 6f 70 79 28 66 73 74 6f 72 65 2d 3e 66 69 65 6c 64 6e 75 6d 73 29 3b .=.list_copy(fstore->fieldnums);
16560 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 6e 65 77 76 61 6c 73 2c 20 66 73 .....MUTATE(newnode->newvals,.fs
16580 74 6f 72 65 2d 3e 6e 65 77 76 61 6c 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 tore->newvals,.List.*);.....MUTA
165a0 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 66 73 74 6f 72 65 2d 3e 61 72 67 2c 20 45 78 TE(newnode->arg,.fstore->arg,.Ex
165c0 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 66 73 74 pr.*);.....FLATCOPY(newnode,.fst
165e0 6f 72 65 2c 20 46 69 65 6c 64 53 74 6f 72 65 29 3b 00 00 09 09 09 09 46 69 65 6c 64 53 74 6f 72 ore,.FieldStore);......FieldStor
16600 65 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 46 69 65 6c 64 53 74 6f 72 65 20 2a 66 73 74 6f e.*newnode;.....FieldStore.*fsto
16620 72 65 20 3d 20 28 46 69 65 6c 64 53 74 6f 72 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 re.=.(FieldStore.*).node;....{..
16640 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 74 6f 72 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 .case.T_FieldStore:....break;...
16660 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 .}.....return.(Node.*).newnode;.
16680 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 66 73 65 6c 65 63 74 ....MUTATE(newnode->arg,.fselect
166a0 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 ->arg,.Expr.*);.....FLATCOPY(new
166c0 6e 6f 64 65 2c 20 66 73 65 6c 65 63 74 2c 20 46 69 65 6c 64 53 65 6c 65 63 74 29 3b 00 00 09 09 node,.fselect,.FieldSelect);....
166e0 09 09 46 69 65 6c 64 53 65 6c 65 63 74 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 46 69 65 6c ..FieldSelect.*newnode;.....Fiel
16700 64 53 65 6c 65 63 74 20 2a 66 73 65 6c 65 63 74 20 3d 20 28 46 69 65 6c 64 53 65 6c 65 63 74 20 dSelect.*fselect.=.(FieldSelect.
16720 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 69 65 6c 64 53 65 6c 65 *).node;....{...case.T_FieldSele
16740 63 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e ct:....break;....}.....return.(N
16760 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f ode.*).newnode;.....MUTATE(newno
16780 64 65 2d 3e 73 75 62 70 6c 61 6e 73 2c 20 61 73 70 6c 61 6e 2d 3e 73 75 62 70 6c 61 6e 73 2c 20 de->subplans,.asplan->subplans,.
167a0 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 61 List.*);.....FLATCOPY(newnode,.a
167c0 73 70 6c 61 6e 2c 20 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 29 3b 00 00 09 09 09 splan,.AlternativeSubPlan);.....
167e0 09 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 .AlternativeSubPlan.*newnode;...
16800 09 09 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 61 73 70 6c 61 6e 20 3d 20 28 ..AlternativeSubPlan.*asplan.=.(
16820 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b AlternativeSubPlan.*).node;....{
16840 00 09 09 63 61 73 65 20 54 5f 41 6c 74 65 72 6e 61 74 69 76 65 53 75 62 50 6c 61 6e 3a 00 09 09 ...case.T_AlternativeSubPlan:...
16860 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 .break;....}.....return.(Node.*)
16880 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 62 75 74 20 6e 6f 74 20 74 68 65 20 73 75 62 .newnode;...../*.but.not.the.sub
168a0 2d 50 6c 61 6e 20 69 74 73 65 6c 66 2c 20 77 68 69 63 68 20 69 73 20 72 65 66 65 72 65 6e 63 65 -Plan.itself,.which.is.reference
168c0 64 20 61 73 2d 69 73 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 d.as-is.*/.....MUTATE(newnode->a
168e0 72 67 73 2c 20 73 75 62 70 6c 61 6e 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 rgs,.subplan->args,.List.*);....
16900 09 2f 2a 20 74 72 61 6e 73 66 6f 72 6d 20 61 72 67 73 20 6c 69 73 74 20 28 70 61 72 61 6d 73 20 ./*.transform.args.list.(params.
16920 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 73 75 62 70 6c 61 6e 29 20 2a 2f 00 09 09 09 09 to.be.passed.to.subplan).*/.....
16940 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 74 65 73 74 65 78 70 72 2c 20 73 75 62 70 6c 61 MUTATE(newnode->testexpr,.subpla
16960 6e 2d 3e 74 65 73 74 65 78 70 72 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 2f 2a 20 74 72 61 n->testexpr,.Node.*);...../*.tra
16980 6e 73 66 6f 72 6d 20 74 65 73 74 65 78 70 72 20 2a 2f 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 nsform.testexpr.*/.....FLATCOPY(
169a0 6e 65 77 6e 6f 64 65 2c 20 73 75 62 70 6c 61 6e 2c 20 53 75 62 50 6c 61 6e 29 3b 00 00 09 09 09 newnode,.subplan,.SubPlan);.....
169c0 09 53 75 62 50 6c 61 6e 20 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 53 75 62 50 6c 61 .SubPlan....*newnode;.....SubPla
169e0 6e 20 20 20 20 2a 73 75 62 70 6c 61 6e 20 3d 20 28 53 75 62 50 6c 61 6e 20 2a 29 20 6e 6f 64 65 n....*subplan.=.(SubPlan.*).node
16a00 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 75 62 50 6c 61 6e 3a 00 09 09 09 62 72 65 61 ;....{...case.T_SubPlan:....brea
16a20 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e k;....}.....return.(Node.*).newn
16a40 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 73 75 62 73 65 6c 65 ode;.....MUTATE(newnode->subsele
16a60 63 74 2c 20 73 75 62 6c 69 6e 6b 2d 3e 73 75 62 73 65 6c 65 63 74 2c 20 4e 6f 64 65 20 2a 29 3b ct,.sublink->subselect,.Node.*);
16a80 00 09 09 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 63 61 6e 20 72 65 63 75 72 73 65 20 69 6e 74 6f ......*/......*.can.recurse.into
16aa0 20 74 68 65 20 73 75 62 2d 71 75 65 72 79 20 69 66 20 69 74 20 77 61 6e 74 73 20 74 6f 2e 00 09 .the.sub-query.if.it.wants.to...
16ac0 09 09 09 20 2a 20 41 6c 73 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 6d 75 74 61 74 6f 72 20 6f 6e ....*.Also.invoke.the.mutator.on
16ae0 20 74 68 65 20 73 75 62 6c 69 6e 6b 27 73 20 51 75 65 72 79 20 6e 6f 64 65 2c 20 73 6f 20 69 74 .the.sublink's.Query.node,.so.it
16b00 00 09 09 09 09 2f 2a 00 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 74 65 73 ...../*......MUTATE(newnode->tes
16b20 74 65 78 70 72 2c 20 73 75 62 6c 69 6e 6b 2d 3e 74 65 73 74 65 78 70 72 2c 20 4e 6f 64 65 20 2a texpr,.sublink->testexpr,.Node.*
16b40 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 73 75 62 6c 69 6e 6b );.....FLATCOPY(newnode,.sublink
16b60 2c 20 53 75 62 4c 69 6e 6b 29 3b 00 00 09 09 09 09 53 75 62 4c 69 6e 6b 20 20 20 20 2a 6e 65 77 ,.SubLink);......SubLink....*new
16b80 6e 6f 64 65 3b 00 09 09 09 09 53 75 62 4c 69 6e 6b 20 20 20 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 node;.....SubLink....*sublink.=.
16ba0 28 53 75 62 4c 69 6e 6b 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f (SubLink.*).node;....{...case.T_
16bc0 53 75 62 4c 69 6e 6b 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 SubLink:....break;....}.....retu
16be0 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 rn.(Node.*).newnode;.....MUTATE(
16c00 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 newnode->args,.expr->args,.List.
16c20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 65 78 70 72 2c 20 *);.....FLATCOPY(newnode,.expr,.
16c40 42 6f 6f 6c 45 78 70 72 29 3b 00 00 09 09 09 09 42 6f 6f 6c 45 78 70 72 20 20 20 2a 6e 65 77 6e BoolExpr);......BoolExpr...*newn
16c60 6f 64 65 3b 00 09 09 09 09 42 6f 6f 6c 45 78 70 72 20 20 20 2a 65 78 70 72 20 3d 20 28 42 6f 6f ode;.....BoolExpr...*expr.=.(Boo
16c80 6c 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f lExpr.*).node;....{...case.T_Boo
16ca0 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e lExpr:....break;....}.....return
16cc0 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 .(Node.*).newnode;.....MUTATE(ne
16ce0 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 wnode->args,.expr->args,.List.*)
16d00 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 65 78 70 72 2c 20 53 63 ;.....FLATCOPY(newnode,.expr,.Sc
16d20 61 6c 61 72 41 72 72 61 79 4f 70 45 78 70 72 29 3b 00 00 09 09 09 09 53 63 61 6c 61 72 41 72 72 alarArrayOpExpr);......ScalarArr
16d40 61 79 4f 70 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 53 63 61 6c 61 72 41 72 72 ayOpExpr.*newnode;.....ScalarArr
16d60 61 79 4f 70 45 78 70 72 20 2a 65 78 70 72 20 3d 20 28 53 63 61 6c 61 72 41 72 72 61 79 4f 70 45 ayOpExpr.*expr.=.(ScalarArrayOpE
16d80 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 63 61 6c 61 xpr.*).node;....{...case.T_Scala
16da0 72 41 72 72 61 79 4f 70 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 rArrayOpExpr:....break;....}....
16dc0 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 .return.(Node.*).newnode;.....MU
16de0 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 67 73 2c 20 TATE(newnode->args,.expr->args,.
16e00 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 65 List.*);.....FLATCOPY(newnode,.e
16e20 78 70 72 2c 20 4e 75 6c 6c 49 66 45 78 70 72 29 3b 00 00 09 09 09 09 4e 75 6c 6c 49 66 45 78 70 xpr,.NullIfExpr);......NullIfExp
16e40 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4e 75 6c 6c 49 66 45 78 70 72 20 2a 65 78 70 72 r.*newnode;.....NullIfExpr.*expr
16e60 20 3d 20 28 4e 75 6c 6c 49 66 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 .=.(NullIfExpr.*).node;....{...c
16e80 61 73 65 20 54 5f 4e 75 6c 6c 49 66 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d ase.T_NullIfExpr:....break;....}
16ea0 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 .....return.(Node.*).newnode;...
16ec0 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 ..MUTATE(newnode->args,.expr->ar
16ee0 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 gs,.List.*);.....FLATCOPY(newnod
16f00 65 2c 20 65 78 70 72 2c 20 44 69 73 74 69 6e 63 74 45 78 70 72 29 3b 00 00 09 09 09 09 44 69 73 e,.expr,.DistinctExpr);......Dis
16f20 74 69 6e 63 74 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 44 69 73 74 69 6e 63 74 tinctExpr.*newnode;.....Distinct
16f40 45 78 70 72 20 2a 65 78 70 72 20 3d 20 28 44 69 73 74 69 6e 63 74 45 78 70 72 20 2a 29 20 6e 6f Expr.*expr.=.(DistinctExpr.*).no
16f60 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 44 69 73 74 69 6e 63 74 45 78 70 72 3a 00 de;....{...case.T_DistinctExpr:.
16f80 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 ...break;....}.....return.(Node.
16fa0 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e *).newnode;.....MUTATE(newnode->
16fc0 61 72 67 73 2c 20 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 args,.expr->args,.List.*);.....F
16fe0 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 65 78 70 72 2c 20 4f 70 45 78 70 72 29 3b 00 LATCOPY(newnode,.expr,.OpExpr);.
17000 61 64 00 00 25 00 00 00 61 02 00 00 00 10 00 00 88 00 00 00 00 00 00 00 e3 0f 00 00 de 0f 00 00 ad..%...a.......................
17020 d4 0f 00 00 b7 0f 00 00 b2 0f 00 00 72 0f 00 00 51 0f 00 00 50 0f 00 00 1b 0f 00 00 ea 0e 00 00 ............r...Q...P...........
17040 cd 0e 00 00 c8 0e 00 00 be 0e 00 00 a8 0e 00 00 a3 0e 00 00 72 0e 00 00 58 0e 00 00 57 0e 00 00 ....................r...X...W...
17060 2a 0e 00 00 fa 0d 00 00 dd 0d 00 00 d8 0d 00 00 ce 0d 00 00 bb 0d 00 00 b6 0d 00 00 88 0d 00 00 *...............................
17080 6f 0d 00 00 6e 0d 00 00 43 0d 00 00 12 0d 00 00 df 0c 00 00 a2 0c 00 00 85 0c 00 00 80 0c 00 00 o...n...C.......................
170a0 76 0c 00 00 63 0c 00 00 5e 0c 00 00 30 0c 00 00 17 0c 00 00 16 0c 00 00 eb 0b 00 00 b8 0b 00 00 v...c...^...0...................
170c0 81 0b 00 00 64 0b 00 00 5f 0b 00 00 55 0b 00 00 41 0b 00 00 3c 0b 00 00 0c 0b 00 00 f3 0a 00 00 ....d..._...U...A...<...........
170e0 f2 0a 00 00 c5 0a 00 00 89 0a 00 00 6c 0a 00 00 67 0a 00 00 5d 0a 00 00 4b 0a 00 00 46 0a 00 00 ............l...g...]...K...F...
17100 1a 0a 00 00 01 0a 00 00 00 0a 00 00 d7 09 00 00 a5 09 00 00 75 09 00 00 58 09 00 00 53 09 00 00 ....................u...X...S...
17120 49 09 00 00 30 09 00 00 2b 09 00 00 f5 08 00 00 d8 08 00 00 d7 08 00 00 a8 08 00 00 75 08 00 00 I...0...+...................u...
17140 42 08 00 00 25 08 00 00 20 08 00 00 16 08 00 00 ff 07 00 00 fa 07 00 00 c2 07 00 00 a7 07 00 00 B...%...........................
17160 a6 07 00 00 73 07 00 00 3c 07 00 00 1f 07 00 00 1a 07 00 00 10 07 00 00 fb 06 00 00 f6 06 00 00 ....s...<.......................
17180 c4 06 00 00 ab 06 00 00 aa 06 00 00 7b 06 00 00 46 06 00 00 29 06 00 00 24 06 00 00 1a 06 00 00 ............{...F...)...$.......
171a0 08 06 00 00 03 06 00 00 d9 05 00 00 c0 05 00 00 bf 05 00 00 98 05 00 00 5c 05 00 00 25 05 00 00 ........................\...%...
171c0 f5 04 00 00 d8 04 00 00 d3 04 00 00 c9 04 00 00 b6 04 00 00 b1 04 00 00 86 04 00 00 6d 04 00 00 ............................m...
171e0 6c 04 00 00 44 04 00 00 16 04 00 00 f9 03 00 00 f4 03 00 00 ea 03 00 00 d4 03 00 00 cf 03 00 00 l...D...........................
17200 a0 03 00 00 86 03 00 00 85 03 00 00 5a 03 00 00 2c 03 00 00 0f 03 00 00 0a 03 00 00 00 03 00 00 ............Z...,...............
17220 e7 02 00 00 e2 02 00 00 ad 02 00 00 90 02 00 00 8f 02 00 00 61 02 00 00 60 02 00 00 00 00 00 00 ....................a...`.......
17240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17260 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 63 74 65 73 74 2c 20 43 6f .....FLATCOPY(newnode,.ctest,.Co
17280 65 72 63 65 54 6f 44 6f 6d 61 69 6e 29 3b 00 00 09 09 09 09 43 6f 65 72 63 65 54 6f 44 6f 6d 61 erceToDomain);......CoerceToDoma
172a0 69 6e 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 in.*newnode;.....CoerceToDomain.
172c0 2a 63 74 65 73 74 20 3d 20 28 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 20 2a 29 20 6e 6f 64 65 *ctest.=.(CoerceToDomain.*).node
172e0 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 65 72 63 65 54 6f 44 6f 6d 61 69 6e 3a 00 ;....{...case.T_CoerceToDomain:.
17300 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 ...break;....}.....return.(Node.
17320 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e *).newnode;.....MUTATE(newnode->
17340 61 72 67 2c 20 62 74 65 73 74 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c arg,.btest->arg,.Expr.*);.....FL
17360 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 62 74 65 73 74 2c 20 42 6f 6f 6c 65 61 6e 54 65 ATCOPY(newnode,.btest,.BooleanTe
17380 73 74 29 3b 00 00 09 09 09 09 42 6f 6f 6c 65 61 6e 54 65 73 74 20 2a 6e 65 77 6e 6f 64 65 3b 00 st);......BooleanTest.*newnode;.
173a0 09 09 09 09 42 6f 6f 6c 65 61 6e 54 65 73 74 20 2a 62 74 65 73 74 20 3d 20 28 42 6f 6f 6c 65 61 ....BooleanTest.*btest.=.(Boolea
173c0 6e 54 65 73 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f nTest.*).node;....{...case.T_Boo
173e0 6c 65 61 6e 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 leanTest:....break;....}.....ret
17400 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 urn.(Node.*).newnode;.....MUTATE
17420 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 6e 74 65 73 74 2d 3e 61 72 67 2c 20 45 78 70 72 20 (newnode->arg,.ntest->arg,.Expr.
17440 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6e 74 65 73 74 2c *);.....FLATCOPY(newnode,.ntest,
17460 20 4e 75 6c 6c 54 65 73 74 29 3b 00 00 09 09 09 09 4e 75 6c 6c 54 65 73 74 20 20 20 2a 6e 65 77 .NullTest);......NullTest...*new
17480 6e 6f 64 65 3b 00 09 09 09 09 4e 75 6c 6c 54 65 73 74 20 20 20 2a 6e 74 65 73 74 20 3d 20 28 4e node;.....NullTest...*ntest.=.(N
174a0 75 6c 6c 54 65 73 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4e ullTest.*).node;....{...case.T_N
174c0 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 ullTest:....break;....}.....retu
174e0 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 rn.(Node.*).newnode;.....MUTATE(
17500 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 78 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 newnode->args,.xexpr->args,.List
17520 20 2a 29 3b 00 09 09 09 09 2f 2a 20 61 73 73 75 6d 65 20 6d 75 74 61 74 6f 72 20 64 6f 65 73 20 .*);...../*.assume.mutator.does.
17540 6e 6f 74 20 63 61 72 65 20 61 62 6f 75 74 20 61 72 67 5f 6e 61 6d 65 73 20 2a 2f 00 09 09 09 09 not.care.about.arg_names.*/.....
17560 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 6e 61 6d 65 64 5f 61 72 67 73 2c 20 78 65 78 70 MUTATE(newnode->named_args,.xexp
17580 72 2d 3e 6e 61 6d 65 64 5f 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 r->named_args,.List.*);.....FLAT
175a0 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 78 65 78 70 72 2c 20 58 6d 6c 45 78 70 72 29 3b 00 00 COPY(newnode,.xexpr,.XmlExpr);..
175c0 09 09 09 09 58 6d 6c 45 78 70 72 20 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 58 6d 6c ....XmlExpr....*newnode;.....Xml
175e0 45 78 70 72 20 20 20 20 2a 78 65 78 70 72 20 3d 20 28 58 6d 6c 45 78 70 72 20 2a 29 20 6e 6f 64 Expr....*xexpr.=.(XmlExpr.*).nod
17600 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 62 72 65 e;....{...case.T_XmlExpr:....bre
17620 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 ak;....}.....return.(Node.*).new
17640 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 node;.....MUTATE(newnode->args,.
17660 6d 69 6e 6d 61 78 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 minmaxexpr->args,.List.*);.....F
17680 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6d 69 6e 6d 61 78 65 78 70 72 2c 20 4d 69 6e LATCOPY(newnode,.minmaxexpr,.Min
176a0 4d 61 78 45 78 70 72 29 3b 00 00 09 09 09 09 4d 69 6e 4d 61 78 45 78 70 72 20 2a 6e 65 77 6e 6f MaxExpr);......MinMaxExpr.*newno
176c0 64 65 3b 00 09 09 09 09 4d 69 6e 4d 61 78 45 78 70 72 20 2a 6d 69 6e 6d 61 78 65 78 70 72 20 3d de;.....MinMaxExpr.*minmaxexpr.=
176e0 20 28 4d 69 6e 4d 61 78 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 .(MinMaxExpr.*).node;....{...cas
17700 65 20 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 e.T_MinMaxExpr:....break;....}..
17720 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 ...return.(Node.*).newnode;.....
17740 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 63 6f 61 6c 65 73 63 65 65 78 MUTATE(newnode->args,.coalesceex
17760 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 pr->args,.List.*);.....FLATCOPY(
17780 6e 65 77 6e 6f 64 65 2c 20 63 6f 61 6c 65 73 63 65 65 78 70 72 2c 20 43 6f 61 6c 65 73 63 65 45 newnode,.coalesceexpr,.CoalesceE
177a0 78 70 72 29 3b 00 00 09 09 09 09 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 xpr);......CoalesceExpr.*newnode
177c0 3b 00 09 09 09 09 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 63 6f 61 6c 65 73 63 65 65 78 70 72 ;.....CoalesceExpr.*coalesceexpr
177e0 20 3d 20 28 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 .=.(CoalesceExpr.*).node;....{..
17800 09 63 61 73 65 20 54 5f 43 6f 61 6c 65 73 63 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 .case.T_CoalesceExpr:....break;.
17820 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 ...}.....return.(Node.*).newnode
17840 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 61 72 67 73 2c 20 72 63 65 ;.....MUTATE(newnode->rargs,.rce
17860 78 70 72 2d 3e 72 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 xpr->rargs,.List.*);.....MUTATE(
17880 6e 65 77 6e 6f 64 65 2d 3e 6c 61 72 67 73 2c 20 72 63 65 78 70 72 2d 3e 6c 61 72 67 73 2c 20 4c newnode->largs,.rcexpr->largs,.L
178a0 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 72 63 ist.*);.....FLATCOPY(newnode,.rc
178c0 65 78 70 72 2c 20 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 72 29 3b 00 00 09 09 09 09 52 6f 77 43 expr,.RowCompareExpr);......RowC
178e0 6f 6d 70 61 72 65 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 52 6f 77 43 6f 6d 70 ompareExpr.*newnode;.....RowComp
17900 61 72 65 45 78 70 72 20 2a 72 63 65 78 70 72 20 3d 20 28 52 6f 77 43 6f 6d 70 61 72 65 45 78 70 areExpr.*rcexpr.=.(RowCompareExp
17920 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 6f 77 43 6f 6d 70 r.*).node;....{...case.T_RowComp
17940 61 72 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 areExpr:....break;....}.....retu
17960 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 41 73 73 75 rn.(Node.*).newnode;...../*.Assu
17980 6d 65 20 63 6f 6c 6e 61 6d 65 73 20 6e 65 65 64 6e 27 74 20 62 65 20 64 75 70 6c 69 63 61 74 65 me.colnames.needn't.be.duplicate
179a0 64 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 72 d.*/.....MUTATE(newnode->args,.r
179c0 6f 77 65 78 70 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 owexpr->args,.List.*);.....FLATC
179e0 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 72 6f 77 65 78 70 72 2c 20 52 6f 77 45 78 70 72 29 3b 00 OPY(newnode,.rowexpr,.RowExpr);.
17a00 00 09 09 09 09 52 6f 77 45 78 70 72 20 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 52 6f .....RowExpr....*newnode;.....Ro
17a20 77 45 78 70 72 20 20 20 20 2a 72 6f 77 65 78 70 72 20 3d 20 28 52 6f 77 45 78 70 72 20 2a 29 20 wExpr....*rowexpr.=.(RowExpr.*).
17a40 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 node;....{...case.T_RowExpr:....
17a60 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 break;....}.....return.(Node.*).
17a80 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 65 6c 65 newnode;.....MUTATE(newnode->ele
17aa0 6d 65 6e 74 73 2c 20 61 72 72 61 79 65 78 70 72 2d 3e 65 6c 65 6d 65 6e 74 73 2c 20 4c 69 73 74 ments,.arrayexpr->elements,.List
17ac0 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 61 72 72 61 79 .*);.....FLATCOPY(newnode,.array
17ae0 65 78 70 72 2c 20 41 72 72 61 79 45 78 70 72 29 3b 00 00 09 09 09 09 41 72 72 61 79 45 78 70 72 expr,.ArrayExpr);......ArrayExpr
17b00 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 41 72 72 61 79 45 78 70 72 20 20 2a 61 72 72 61 ..*newnode;.....ArrayExpr..*arra
17b20 79 65 78 70 72 20 3d 20 28 41 72 72 61 79 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b yexpr.=.(ArrayExpr.*).node;....{
17b40 00 09 09 63 61 73 65 20 54 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 ...case.T_ArrayExpr:....break;..
17b60 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b ..}.....return.(Node.*).newnode;
17b80 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 65 73 75 6c 74 2c 20 63 61 73 .....MUTATE(newnode->result,.cas
17ba0 65 77 68 65 6e 2d 3e 72 65 73 75 6c 74 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 ewhen->result,.Expr.*);.....MUTA
17bc0 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 65 78 70 72 2c 20 63 61 73 65 77 68 65 6e 2d 3e 65 78 70 72 TE(newnode->expr,.casewhen->expr
17be0 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c ,.Expr.*);.....FLATCOPY(newnode,
17c00 20 63 61 73 65 77 68 65 6e 2c 20 43 61 73 65 57 68 65 6e 29 3b 00 00 09 09 09 09 43 61 73 65 57 .casewhen,.CaseWhen);......CaseW
17c20 68 65 6e 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 61 73 65 57 68 65 6e 20 20 20 2a hen...*newnode;.....CaseWhen...*
17c40 63 61 73 65 77 68 65 6e 20 3d 20 28 43 61 73 65 57 68 65 6e 20 2a 29 20 6e 6f 64 65 3b 00 09 09 casewhen.=.(CaseWhen.*).node;...
17c60 09 7b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 57 68 65 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 .{...case.T_CaseWhen:....break;.
17c80 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 ...}.....return.(Node.*).newnode
17ca0 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 64 65 66 72 65 73 75 6c 74 2c ;.....MUTATE(newnode->defresult,
17cc0 20 63 61 73 65 65 78 70 72 2d 3e 64 65 66 72 65 73 75 6c 74 2c 20 45 78 70 72 20 2a 29 3b 00 09 .caseexpr->defresult,.Expr.*);..
17ce0 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 73 2c 20 63 61 73 65 65 78 70 ...MUTATE(newnode->args,.caseexp
17d00 72 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 r->args,.List.*);.....MUTATE(new
17d20 6e 6f 64 65 2d 3e 61 72 67 2c 20 63 61 73 65 65 78 70 72 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a node->arg,.caseexpr->arg,.Expr.*
17d40 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 63 61 73 65 65 78 70 );.....FLATCOPY(newnode,.caseexp
17d60 72 2c 20 43 61 73 65 45 78 70 72 29 3b 00 00 09 09 09 09 43 61 73 65 45 78 70 72 20 20 20 2a 6e r,.CaseExpr);......CaseExpr...*n
17d80 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 61 73 65 45 78 70 72 20 20 20 2a 63 61 73 65 65 78 70 72 ewnode;.....CaseExpr...*caseexpr
17da0 20 3d 20 28 43 61 73 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 .=.(CaseExpr.*).node;....{...cas
17dc0 65 20 54 5f 43 61 73 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 e.T_CaseExpr:....break;....}....
17de0 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 .return.(Node.*).newnode;.....MU
17e00 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 2c 20 63 6f 6c 6c 61 74 65 2d 3e 61 72 67 2c TATE(newnode->arg,.collate->arg,
17e20 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 .Expr.*);.....FLATCOPY(newnode,.
17e40 63 6f 6c 6c 61 74 65 2c 20 43 6f 6c 6c 61 74 65 45 78 70 72 29 3b 00 00 09 09 09 09 43 6f 6c 6c collate,.CollateExpr);......Coll
17e60 61 74 65 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 6f 6c 6c 61 74 65 45 78 70 ateExpr.*newnode;.....CollateExp
17e80 72 20 2a 63 6f 6c 6c 61 74 65 20 3d 20 28 43 6f 6c 6c 61 74 65 45 78 70 72 20 2a 29 20 6e 6f 64 r.*collate.=.(CollateExpr.*).nod
17ea0 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 6c 61 74 65 45 78 70 72 3a 00 09 09 e;....{...case.T_CollateExpr:...
17ec0 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 .break;....}.....return.(Node.*)
17ee0 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 .newnode;.....MUTATE(newnode->ar
17f00 67 2c 20 63 6f 6e 76 65 78 70 72 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 g,.convexpr->arg,.Expr.*);.....F
17f20 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 63 6f 6e 76 65 78 70 72 2c 20 43 6f 6e 76 65 LATCOPY(newnode,.convexpr,.Conve
17f40 72 74 52 6f 77 74 79 70 65 45 78 70 72 29 3b 00 00 09 09 09 09 43 6f 6e 76 65 72 74 52 6f 77 74 rtRowtypeExpr);......ConvertRowt
17f60 79 70 65 45 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 6f 6e 76 65 72 74 52 6f 77 ypeExpr.*newnode;.....ConvertRow
17f80 74 79 70 65 45 78 70 72 20 2a 63 6f 6e 76 65 78 70 72 20 3d 20 28 43 6f 6e 76 65 72 74 52 6f 77 typeExpr.*convexpr.=.(ConvertRow
17fa0 74 79 70 65 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f typeExpr.*).node;....{...case.T_
17fc0 43 6f 6e 76 65 72 74 52 6f 77 74 79 70 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ConvertRowtypeExpr:....break;...
17fe0 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 .}.....return.(Node.*).newnode;.
18000 61 64 00 00 09 00 00 00 1d 02 00 00 00 10 00 00 7e 00 00 00 00 00 00 00 d2 0f 00 00 b5 0f 00 00 ad..............~...............
18020 b0 0f 00 00 a6 0f 00 00 90 0f 00 00 8b 0f 00 00 56 0f 00 00 3c 0f 00 00 3b 0f 00 00 0a 0f 00 00 ................V...<...;.......
18040 d4 0e 00 00 b7 0e 00 00 b2 0e 00 00 a8 0e 00 00 98 0e 00 00 5d 0e 00 00 4d 0e 00 00 36 0e 00 00 ....................]...M...6...
18060 31 0e 00 00 03 0e 00 00 e8 0d 00 00 e7 0d 00 00 be 0d 00 00 7b 0d 00 00 40 0d 00 00 05 0d 00 00 1...................{...@.......
18080 ce 0c 00 00 b1 0c 00 00 ac 0c 00 00 a2 0c 00 00 88 0c 00 00 83 0c 00 00 4e 0c 00 00 30 0c 00 00 ........................N...0...
180a0 2f 0c 00 00 02 0c 00 00 01 0c 00 00 fa 0b 00 00 b8 0b 00 00 86 0b 00 00 7e 0b 00 00 48 0b 00 00 /.......................~...H...
180c0 2b 0b 00 00 26 0b 00 00 1c 0b 00 00 0d 0b 00 00 08 0b 00 00 01 0b 00 00 c1 0a 00 00 7f 0a 00 00 +...&...........................
180e0 46 0a 00 00 3e 0a 00 00 25 0a 00 00 0f 0a 00 00 0e 0a 00 00 f8 09 00 00 d7 09 00 00 d1 09 00 00 F...>...%.......................
18100 ab 09 00 00 81 09 00 00 69 09 00 00 63 09 00 00 43 09 00 00 3e 09 00 00 34 09 00 00 21 09 00 00 ........i...c...C...>...4...!...
18120 1c 09 00 00 f2 08 00 00 d9 08 00 00 d8 08 00 00 b1 08 00 00 7a 08 00 00 49 08 00 00 2c 08 00 00 ....................z...I...,...
18140 27 08 00 00 1d 08 00 00 04 08 00 00 ff 07 00 00 cd 07 00 00 b0 07 00 00 af 07 00 00 84 07 00 00 '...............................
18160 47 07 00 00 0a 07 00 00 cb 06 00 00 88 06 00 00 4b 06 00 00 4a 06 00 00 2d 06 00 00 28 06 00 00 G...............K...J...-...(...
18180 1e 06 00 00 0b 06 00 00 06 06 00 00 dc 05 00 00 c3 05 00 00 c2 05 00 00 9b 05 00 00 6c 05 00 00 ............................l...
181a0 3d 05 00 00 0c 05 00 00 d7 04 00 00 ba 04 00 00 b5 04 00 00 ab 04 00 00 90 04 00 00 8b 04 00 00 =...............................
181c0 52 04 00 00 33 04 00 00 32 04 00 00 02 04 00 00 d2 03 00 00 a2 03 00 00 6f 03 00 00 52 03 00 00 R...3...2...............o...R...
181e0 4d 03 00 00 43 03 00 00 2a 03 00 00 25 03 00 00 f2 02 00 00 d5 02 00 00 d4 02 00 00 a8 02 00 00 M...C...*...%...................
18200 76 02 00 00 3f 02 00 00 22 02 00 00 1d 02 00 00 1c 02 00 00 00 00 00 00 00 00 00 00 00 09 09 09 v...?...".......................
18220 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 }.....return.(Node.*).newnode;..
18240 09 09 09 2f 2a 20 41 73 73 75 6d 65 20 77 65 20 6e 65 65 64 20 6e 6f 74 20 63 6f 70 79 20 74 68 .../*.Assume.we.need.not.copy.th
18260 65 20 72 65 6c 69 64 73 20 62 69 74 6d 61 70 73 65 74 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 e.relids.bitmapset.*/.....MUTATE
18280 28 6e 65 77 6e 6f 64 65 2d 3e 70 68 65 78 70 72 2c 20 70 68 76 2d 3e 70 68 65 78 70 72 2c 20 45 (newnode->phexpr,.phv->phexpr,.E
182a0 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 70 68 xpr.*);.....FLATCOPY(newnode,.ph
182c0 76 2c 20 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 29 3b 00 00 09 09 09 09 50 6c 61 63 65 48 6f v,.PlaceHolderVar);......PlaceHo
182e0 6c 64 65 72 56 61 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 50 6c 61 63 65 48 6f 6c 64 65 lderVar.*newnode;.....PlaceHolde
18300 72 56 61 72 20 2a 70 68 76 20 3d 20 28 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 72 20 2a 29 20 6e rVar.*phv.=.(PlaceHolderVar.*).n
18320 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 50 6c 61 63 65 48 6f 6c 64 65 72 56 61 ode;....{...case.T_PlaceHolderVa
18340 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f r:....break;....}.....return.(No
18360 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 57 65 20 64 6f 20 6e 6f 74 20 de.*).newnode;...../*.We.do.not.
18380 6d 75 74 61 74 65 20 67 72 6f 75 70 43 6c 61 75 73 65 73 20 62 79 20 64 65 66 61 75 6c 74 20 2a mutate.groupClauses.by.default.*
183a0 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 61 72 67 2c 20 73 65 74 6f /.....MUTATE(newnode->rarg,.seto
183c0 70 2d 3e 72 61 72 67 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 p->rarg,.Node.*);.....MUTATE(new
183e0 6e 6f 64 65 2d 3e 6c 61 72 67 2c 20 73 65 74 6f 70 2d 3e 6c 61 72 67 2c 20 4e 6f 64 65 20 2a 29 node->larg,.setop->larg,.Node.*)
18400 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 73 65 74 6f 70 2c 20 53 ;.....FLATCOPY(newnode,.setop,.S
18420 65 74 4f 70 65 72 61 74 69 6f 6e 53 74 6d 74 29 3b 00 00 09 09 09 09 53 65 74 4f 70 65 72 61 74 etOperationStmt);......SetOperat
18440 69 6f 6e 53 74 6d 74 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 53 65 74 4f 70 65 72 61 74 69 ionStmt.*newnode;.....SetOperati
18460 6f 6e 53 74 6d 74 20 2a 73 65 74 6f 70 20 3d 20 28 53 65 74 4f 70 65 72 61 74 69 6f 6e 53 74 6d onStmt.*setop.=.(SetOperationStm
18480 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 53 65 74 4f 70 65 72 t.*).node;....{...case.T_SetOper
184a0 61 74 69 6f 6e 53 74 6d 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 ationStmt:....break;....}.....re
184c0 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 57 65 turn.(Node.*).newnode;...../*.We
184e0 20 64 6f 20 6e 6f 74 20 6d 75 74 61 74 65 20 61 6c 69 61 73 20 6f 72 20 75 73 69 6e 67 20 62 79 .do.not.mutate.alias.or.using.by
18500 20 64 65 66 61 75 6c 74 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e .default.*/.....MUTATE(newnode->
18520 71 75 61 6c 73 2c 20 6a 6f 69 6e 2d 3e 71 75 61 6c 73 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 quals,.join->quals,.Node.*);....
18540 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 72 61 72 67 2c 20 6a 6f 69 6e 2d 3e 72 61 72 .MUTATE(newnode->rarg,.join->rar
18560 67 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e g,.Node.*);.....MUTATE(newnode->
18580 6c 61 72 67 2c 20 6a 6f 69 6e 2d 3e 6c 61 72 67 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 46 larg,.join->larg,.Node.*);.....F
185a0 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6a 6f 69 6e 2c 20 4a 6f 69 6e 45 78 70 72 29 LATCOPY(newnode,.join,.JoinExpr)
185c0 3b 00 00 09 09 09 09 4a 6f 69 6e 45 78 70 72 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 ;......JoinExpr...*newnode;.....
185e0 4a 6f 69 6e 45 78 70 72 20 20 20 2a 6a 6f 69 6e 20 3d 20 28 4a 6f 69 6e 45 78 70 72 20 2a 29 20 JoinExpr...*join.=.(JoinExpr.*).
18600 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4a 6f 69 6e 45 78 70 72 3a 00 09 09 node;....{...case.T_JoinExpr:...
18620 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 .break;....}.....return.(Node.*)
18640 20 6e 65 77 6e 6f 64 65 3b 00 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 65 .newnode;......MUTATE(newnode->e
18660 78 63 6c 52 65 6c 54 6c 69 73 74 2c 20 6f 63 2d 3e 65 78 63 6c 52 65 6c 54 6c 69 73 74 2c 20 4c xclRelTlist,.oc->exclRelTlist,.L
18680 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 6f 6e 43 6f ist.*);.....MUTATE(newnode->onCo
186a0 6e 66 6c 69 63 74 57 68 65 72 65 2c 20 6f 63 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 57 68 65 72 65 nflictWhere,.oc->onConflictWhere
186c0 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 6f ,.Node.*);.....MUTATE(newnode->o
186e0 6e 43 6f 6e 66 6c 69 63 74 53 65 74 2c 20 6f 63 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 53 65 74 2c nConflictSet,.oc->onConflictSet,
18700 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 .List.*);.....MUTATE(newnode->ar
18720 62 69 74 65 72 57 68 65 72 65 2c 20 6f 63 2d 3e 61 72 62 69 74 65 72 57 68 65 72 65 2c 20 4e 6f biterWhere,.oc->arbiterWhere,.No
18740 64 65 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 62 69 74 de.*);.....MUTATE(newnode->arbit
18760 65 72 45 6c 65 6d 73 2c 20 6f 63 2d 3e 61 72 62 69 74 65 72 45 6c 65 6d 73 2c 20 4c 69 73 74 20 erElems,.oc->arbiterElems,.List.
18780 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 6f 63 2c 20 4f 6e *);.....FLATCOPY(newnode,.oc,.On
187a0 43 6f 6e 66 6c 69 63 74 45 78 70 72 29 3b 00 00 09 09 09 09 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 ConflictExpr);......OnConflictEx
187c0 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 70 72 20 pr.*newnode;.....OnConflictExpr.
187e0 2a 6f 63 20 3d 20 28 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 *oc.=.(OnConflictExpr.*).node;..
18800 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 70 72 3a 00 09 09 09 ..{...case.T_OnConflictExpr:....
18820 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 break;....}.....return.(Node.*).
18840 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 71 75 61 newnode;.....MUTATE(newnode->qua
18860 6c 73 2c 20 66 72 6f 6d 2d 3e 71 75 61 6c 73 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 09 09 4d 55 ls,.from->quals,.Node.*);.....MU
18880 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 66 72 6f 6d 6c 69 73 74 2c 20 66 72 6f 6d 2d 3e 66 72 TATE(newnode->fromlist,.from->fr
188a0 6f 6d 6c 69 73 74 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 omlist,.List.*);.....FLATCOPY(ne
188c0 77 6e 6f 64 65 2c 20 66 72 6f 6d 2c 20 46 72 6f 6d 45 78 70 72 29 3b 00 00 09 09 09 09 46 72 6f wnode,.from,.FromExpr);......Fro
188e0 6d 45 78 70 72 20 20 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 46 72 6f 6d 45 78 70 72 20 20 mExpr...*newnode;.....FromExpr..
18900 20 2a 66 72 6f 6d 20 3d 20 28 46 72 6f 6d 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b .*from.=.(FromExpr.*).node;....{
18920 00 09 09 63 61 73 65 20 54 5f 46 72 6f 6d 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 ...case.T_FromExpr:....break;...
18940 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 72 65 73 75 6c 74 6c 69 73 .}.....return.(Node.*).resultlis
18960 74 3b 00 09 09 09 09 7d 00 09 09 09 09 09 09 09 09 09 09 09 09 20 63 6f 6e 74 65 78 74 29 29 3b t;.....}..............context));
18980 00 09 09 09 09 09 09 09 09 09 09 20 6d 75 74 61 74 6f 72 28 28 4e 6f 64 65 20 2a 29 20 6c 66 69 ............mutator((Node.*).lfi
189a0 72 73 74 28 74 65 6d 70 29 2c 00 09 09 09 09 09 72 65 73 75 6c 74 6c 69 73 74 20 3d 20 6c 61 70 rst(temp),......resultlist.=.lap
189c0 70 65 6e 64 28 72 65 73 75 6c 74 6c 69 73 74 2c 00 09 09 09 09 7b 00 09 09 09 09 66 6f 72 65 61 pend(resultlist,.....{.....forea
189e0 63 68 28 74 65 6d 70 2c 20 28 4c 69 73 74 20 2a 29 20 6e 6f 64 65 29 00 09 09 09 09 72 65 73 75 ch(temp,.(List.*).node).....resu
18a00 6c 74 6c 69 73 74 20 3d 20 4e 49 4c 3b 00 00 09 09 09 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 74 ltlist.=.NIL;......ListCell...*t
18a20 65 6d 70 3b 00 09 09 09 09 4c 69 73 74 09 20 20 20 2a 72 65 73 75 6c 74 6c 69 73 74 3b 00 09 09 emp;.....List....*resultlist;...
18a40 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 77 6f 75 6c 64 20 66 61 69 6c 20 62 61 64 6c 79 20 6f 6e ...*/......*.would.fail.badly.on
18a60 20 61 20 6c 69 73 74 20 77 69 74 68 20 69 6e 74 65 67 65 72 20 65 6c 65 6d 65 6e 74 73 21 00 09 .a.list.with.integer.elements!..
18a80 09 09 09 20 2a 20 70 65 72 20 73 65 2c 20 73 6f 20 6a 75 73 74 20 69 6e 76 6f 6b 65 20 69 74 20 ....*.per.se,.so.just.invoke.it.
18aa0 6f 6e 20 65 61 63 68 20 6c 69 73 74 20 65 6c 65 6d 65 6e 74 2e 20 4e 4f 54 45 3a 20 74 68 69 73 on.each.list.element..NOTE:.this
18ac0 00 09 09 09 09 20 2a 20 57 65 20 61 73 73 75 6d 65 20 74 68 65 20 6d 75 74 61 74 6f 72 20 69 73 ......*.We.assume.the.mutator.is
18ae0 6e 27 74 20 69 6e 74 65 72 65 73 74 65 64 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6e 6f 64 65 73 n't.interested.in.the.list.nodes
18b00 00 09 09 09 09 2f 2a 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4c 69 73 74 3a 00 09 09 09 62 ...../*....{...case.T_List:....b
18b20 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e reak;....}.....return.(Node.*).n
18b40 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 63 74 65 71 ewnode;.....MUTATE(newnode->cteq
18b60 75 65 72 79 2c 20 63 74 65 2d 3e 63 74 65 71 75 65 72 79 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 uery,.cte->ctequery,.Node.*);...
18b80 09 09 20 2a 2f 00 09 09 09 09 20 2a 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 74 68 65 20 73 75 ...*/......*.recurse.into.the.su
18ba0 62 2d 71 75 65 72 79 20 69 66 20 69 74 20 77 61 6e 74 73 20 74 6f 2e 00 09 09 09 09 20 2a 20 41 b-query.if.it.wants.to.......*.A
18bc0 6c 73 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 6d 75 74 61 74 6f 72 20 6f 6e 20 74 68 65 20 43 54 lso.invoke.the.mutator.on.the.CT
18be0 45 27 73 20 51 75 65 72 79 20 6e 6f 64 65 2c 20 73 6f 20 69 74 20 63 61 6e 00 09 09 09 09 2f 2a E's.Query.node,.so.it.can...../*
18c00 00 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 63 74 65 2c 20 43 6f 6d ......FLATCOPY(newnode,.cte,.Com
18c20 6d 6f 6e 54 61 62 6c 65 45 78 70 72 29 3b 00 00 09 09 09 09 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 monTableExpr);......CommonTableE
18c40 78 70 72 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 xpr.*newnode;.....CommonTableExp
18c60 72 20 2a 63 74 65 20 3d 20 28 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 20 2a 29 20 6e 6f 64 r.*cte.=.(CommonTableExpr.*).nod
18c80 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 e;....{...case.T_CommonTableExpr
18ca0 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 :....break;....}.....return.(Nod
18cc0 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 e.*).newnode;.....MUTATE(newnode
18ce0 2d 3e 65 6e 64 4f 66 66 73 65 74 2c 20 77 63 2d 3e 65 6e 64 4f 66 66 73 65 74 2c 20 4e 6f 64 65 ->endOffset,.wc->endOffset,.Node
18d00 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 73 74 61 72 74 4f 66 .*);.....MUTATE(newnode->startOf
18d20 66 73 65 74 2c 20 77 63 2d 3e 73 74 61 72 74 4f 66 66 73 65 74 2c 20 4e 6f 64 65 20 2a 29 3b 00 fset,.wc->startOffset,.Node.*);.
18d40 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 6f 72 64 65 72 43 6c 61 75 73 65 2c ....MUTATE(newnode->orderClause,
18d60 20 77 63 2d 3e 6f 72 64 65 72 43 6c 61 75 73 65 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 4d .wc->orderClause,.List.*);.....M
18d80 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 70 61 72 74 69 74 69 6f 6e 43 6c 61 75 73 65 2c 20 UTATE(newnode->partitionClause,.
18da0 77 63 2d 3e 70 61 72 74 69 74 69 6f 6e 43 6c 61 75 73 65 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 wc->partitionClause,.List.*);...
18dc0 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 77 63 2c 20 57 69 6e 64 6f 77 43 6c ..FLATCOPY(newnode,.wc,.WindowCl
18de0 61 75 73 65 29 3b 00 00 09 09 09 09 57 69 6e 64 6f 77 43 6c 61 75 73 65 20 2a 6e 65 77 6e 6f 64 ause);......WindowClause.*newnod
18e00 65 3b 00 09 09 09 09 57 69 6e 64 6f 77 43 6c 61 75 73 65 20 2a 77 63 20 3d 20 28 57 69 6e 64 6f e;.....WindowClause.*wc.=.(Windo
18e20 77 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 57 wClause.*).node;....{...case.T_W
18e40 69 6e 64 6f 77 43 6c 61 75 73 65 3a 00 09 09 09 72 65 74 75 72 6e 20 6e 6f 64 65 3b 00 09 09 09 indowClause:....return.node;....
18e60 2f 2a 20 44 6f 20 6e 6f 74 68 69 6e 67 20 77 69 74 68 20 61 20 73 75 62 2d 51 75 65 72 79 2c 20 /*.Do.nothing.with.a.sub-Query,.
18e80 70 65 72 20 64 69 73 63 75 73 73 69 6f 6e 20 61 62 6f 76 65 20 2a 2f 00 09 09 63 61 73 65 20 54 per.discussion.above.*/...case.T
18ea0 5f 51 75 65 72 79 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 _Query:....break;....}.....retur
18ec0 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e n.(Node.*).newnode;.....MUTATE(n
18ee0 65 77 6e 6f 64 65 2d 3e 65 78 70 72 2c 20 74 61 72 67 65 74 65 6e 74 72 79 2d 3e 65 78 70 72 2c ewnode->expr,.targetentry->expr,
18f00 20 45 78 70 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 .Expr.*);.....FLATCOPY(newnode,.
18f20 74 61 72 67 65 74 65 6e 74 72 79 2c 20 54 61 72 67 65 74 45 6e 74 72 79 29 3b 00 00 09 09 09 09 targetentry,.TargetEntry);......
18f40 54 61 72 67 65 74 45 6e 74 72 79 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 54 61 72 67 65 74 TargetEntry.*newnode;.....Target
18f60 45 6e 74 72 79 20 2a 74 61 72 67 65 74 65 6e 74 72 79 20 3d 20 28 54 61 72 67 65 74 45 6e 74 72 Entry.*targetentry.=.(TargetEntr
18f80 79 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 54 61 72 67 65 74 45 y.*).node;....{...case.T_TargetE
18fa0 6e 74 72 79 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 ntry:....break;....}.....return.
18fc0 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 (Node.*).newnode;.....MUTATE(new
18fe0 6e 6f 64 65 2d 3e 61 72 67 2c 20 63 74 65 73 74 2d 3e 61 72 67 2c 20 45 78 70 72 20 2a 29 3b 00 node->arg,.ctest->arg,.Expr.*);.
19000 61 64 00 00 00 00 00 00 d8 01 00 00 00 10 00 00 6f 00 00 00 00 00 00 00 f6 0f 00 00 de 0f 00 00 ad..............o...............
19020 d9 0f 00 00 99 0f 00 00 7d 0f 00 00 7c 0f 00 00 42 0f 00 00 10 0f 00 00 f3 0e 00 00 ee 0e 00 00 ........}...|...B...............
19040 e4 0e 00 00 cc 0e 00 00 c7 0e 00 00 92 0e 00 00 76 0e 00 00 75 0e 00 00 46 0e 00 00 fe 0d 00 00 ................v...u...F.......
19060 e1 0d 00 00 dc 0d 00 00 d2 0d 00 00 b8 0d 00 00 b3 0d 00 00 7b 0d 00 00 5d 0d 00 00 5c 0d 00 00 ....................{...]...\...
19080 2c 0d 00 00 ed 0c 00 00 b5 0c 00 00 98 0c 00 00 93 0c 00 00 89 0c 00 00 6e 0c 00 00 69 0c 00 00 ,.......................n...i...
190a0 2f 0c 00 00 10 0c 00 00 0f 0c 00 00 de 0b 00 00 a5 0b 00 00 6d 0b 00 00 50 0b 00 00 4b 0b 00 00 /...................m...P...K...
190c0 41 0b 00 00 25 0b 00 00 20 0b 00 00 e7 0a 00 00 c7 0a 00 00 c6 0a 00 00 97 0a 00 00 69 0a 00 00 A...%.......................i...
190e0 2f 0a 00 00 12 0a 00 00 0d 0a 00 00 03 0a 00 00 f8 09 00 00 cb 09 00 00 b0 09 00 00 a6 09 00 00 /...............................
19100 a3 09 00 00 74 09 00 00 66 09 00 00 64 09 00 00 63 09 00 00 62 09 00 00 5f 09 00 00 16 09 00 00 ....t...f...d...c...b..._.......
19120 13 09 00 00 c6 08 00 00 7c 08 00 00 33 08 00 00 ed 07 00 00 bd 07 00 00 ba 07 00 00 71 07 00 00 ........|...3...............q...
19140 25 07 00 00 d7 06 00 00 95 06 00 00 57 06 00 00 54 06 00 00 08 06 00 00 c0 05 00 00 89 05 00 00 %...........W...T...............
19160 85 05 00 00 7d 05 00 00 5c 05 00 00 40 05 00 00 2a 05 00 00 18 05 00 00 16 05 00 00 e9 04 00 00 ....}...\...@...*...............
19180 e8 04 00 00 c3 04 00 00 c0 04 00 00 aa 04 00 00 a9 04 00 00 85 04 00 00 71 04 00 00 6e 04 00 00 ........................q...n...
191a0 6d 04 00 00 36 04 00 00 f3 03 00 00 b2 03 00 00 75 03 00 00 3e 03 00 00 01 03 00 00 ca 02 00 00 m...6...........u...>...........
191c0 91 02 00 00 5a 02 00 00 2f 02 00 00 fd 01 00 00 d8 01 00 00 00 00 00 00 09 65 6c 73 65 09 2f 2a ....Z.../................else./*
191e0 20 65 6c 73 65 20 63 6f 70 79 20 43 54 45 20 6c 69 73 74 20 61 73 2d 69 73 20 2a 2f 00 09 09 4d .else.copy.CTE.list.as-is.*/...M
19200 55 54 41 54 45 28 71 75 65 72 79 2d 3e 63 74 65 4c 69 73 74 2c 20 71 75 65 72 79 2d 3e 63 74 65 UTATE(query->cteList,.query->cte
19220 4c 69 73 74 2c 20 4c 69 73 74 20 2a 29 3b 00 09 69 66 20 28 21 28 66 6c 61 67 73 20 26 20 51 54 List,.List.*);..if.(!(flags.&.QT
19240 57 5f 49 47 4e 4f 52 45 5f 43 54 45 5f 53 55 42 51 55 45 52 49 45 53 29 29 00 09 4d 55 54 41 54 W_IGNORE_CTE_SUBQUERIES))..MUTAT
19260 45 28 71 75 65 72 79 2d 3e 6c 69 6d 69 74 43 6f 75 6e 74 2c 20 71 75 65 72 79 2d 3e 6c 69 6d 69 E(query->limitCount,.query->limi
19280 74 43 6f 75 6e 74 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 65 72 79 2d 3e tCount,.Node.*);..MUTATE(query->
192a0 6c 69 6d 69 74 4f 66 66 73 65 74 2c 20 71 75 65 72 79 2d 3e 6c 69 6d 69 74 4f 66 66 73 65 74 2c limitOffset,.query->limitOffset,
192c0 20 4e 6f 64 65 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 65 72 79 2d 3e 68 61 76 69 6e 67 51 .Node.*);..MUTATE(query->havingQ
192e0 75 61 6c 2c 20 71 75 65 72 79 2d 3e 68 61 76 69 6e 67 51 75 61 6c 2c 20 4e 6f 64 65 20 2a 29 3b ual,.query->havingQual,.Node.*);
19300 00 09 4d 55 54 41 54 45 28 71 75 65 72 79 2d 3e 73 65 74 4f 70 65 72 61 74 69 6f 6e 73 2c 20 71 ..MUTATE(query->setOperations,.q
19320 75 65 72 79 2d 3e 73 65 74 4f 70 65 72 61 74 69 6f 6e 73 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 4d uery->setOperations,.Node.*);..M
19340 55 54 41 54 45 28 71 75 65 72 79 2d 3e 6a 6f 69 6e 74 72 65 65 2c 20 71 75 65 72 79 2d 3e 6a 6f UTATE(query->jointree,.query->jo
19360 69 6e 74 72 65 65 2c 20 46 72 6f 6d 45 78 70 72 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 65 intree,.FromExpr.*);..MUTATE(que
19380 72 79 2d 3e 72 65 74 75 72 6e 69 6e 67 4c 69 73 74 2c 20 71 75 65 72 79 2d 3e 72 65 74 75 72 6e ry->returningList,.query->return
193a0 69 6e 67 4c 69 73 74 2c 20 4c 69 73 74 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 65 72 79 2d ingList,.List.*);..MUTATE(query-
193c0 3e 6f 6e 43 6f 6e 66 6c 69 63 74 2c 20 71 75 65 72 79 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 2c 20 >onConflict,.query->onConflict,.
193e0 4f 6e 43 6f 6e 66 6c 69 63 74 45 78 70 72 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 65 72 79 OnConflictExpr.*);..MUTATE(query
19400 2d 3e 77 69 74 68 43 68 65 63 6b 4f 70 74 69 6f 6e 73 2c 20 71 75 65 72 79 2d 3e 77 69 74 68 43 ->withCheckOptions,.query->withC
19420 68 65 63 6b 4f 70 74 69 6f 6e 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 4d 55 54 41 54 45 28 71 75 heckOptions,.List.*);..MUTATE(qu
19440 65 72 79 2d 3e 74 61 72 67 65 74 4c 69 73 74 2c 20 71 75 65 72 79 2d 3e 74 61 72 67 65 74 4c 69 ery->targetList,.query->targetLi
19460 73 74 2c 20 4c 69 73 74 20 2a 29 3b 00 00 09 7d 00 09 09 71 75 65 72 79 20 3d 20 6e 65 77 71 75 st,.List.*);...}...query.=.newqu
19480 65 72 79 3b 00 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 71 75 65 72 79 2c 20 71 75 65 72 79 2c ery;...FLATCOPY(newquery,.query,
194a0 20 51 75 65 72 79 29 3b 00 00 09 09 51 75 65 72 79 09 20 20 20 2a 6e 65 77 71 75 65 72 79 3b 00 .Query);....Query....*newquery;.
194c0 09 7b 00 09 69 66 20 28 21 28 66 6c 61 67 73 20 26 20 51 54 57 5f 44 4f 4e 54 5f 43 4f 50 59 5f .{..if.(!(flags.&.QTW_DONT_COPY_
194e0 51 55 45 52 59 29 29 00 00 09 41 73 73 65 72 74 28 71 75 65 72 79 20 21 3d 20 4e 55 4c 4c 20 26 QUERY))...Assert(query.!=.NULL.&
19500 26 20 49 73 41 28 71 75 65 72 79 2c 20 51 75 65 72 79 29 29 3b 00 7b 00 09 09 09 09 20 20 20 69 &.IsA(query,.Query));.{........i
19520 6e 74 20 66 6c 61 67 73 29 00 09 09 09 09 20 20 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 2c 00 nt.flags)........void.*context,.
19540 09 09 09 09 20 20 20 4e 6f 64 65 20 2a 28 2a 6d 75 74 61 74 6f 72 29 20 28 29 2c 00 71 75 65 72 .......Node.*(*mutator).(),.quer
19560 79 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 28 51 75 65 72 79 20 2a 71 75 65 72 79 2c 00 51 75 65 y_tree_mutator(Query.*query,.Que
19580 72 79 20 2a 00 20 2a 2f 00 20 2a 20 6d 6f 64 69 66 69 65 64 20 73 75 62 73 74 72 75 63 74 75 72 ry.*..*/..*.modified.substructur
195a0 65 20 69 73 20 73 61 66 65 6c 79 20 63 6f 70 69 65 64 20 69 6e 20 61 6e 79 20 63 61 73 65 2e 00 e.is.safely.copied.in.any.case..
195c0 20 2a 20 6d 6f 64 69 66 69 65 64 20 69 6e 2d 70 6c 61 63 65 3b 20 74 68 65 79 20 6d 75 73 74 20 .*.modified.in-place;.they.must.
195e0 70 61 73 73 20 51 54 57 5f 44 4f 4e 54 5f 43 4f 50 59 5f 51 55 45 52 59 20 69 6e 20 66 6c 61 67 pass.QTW_DONT_COPY_QUERY.in.flag
19600 73 2e 20 20 41 6c 6c 00 20 2a 20 4e 6f 72 6d 61 6c 6c 79 20 74 68 65 20 51 75 65 72 79 20 6e 6f s...All..*.Normally.the.Query.no
19620 64 65 20 69 74 73 65 6c 66 20 69 73 20 63 6f 70 69 65 64 2c 20 62 75 74 20 73 6f 6d 65 20 63 61 de.itself.is.copied,.but.some.ca
19640 6c 6c 65 72 73 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 00 20 2a 00 20 2a 20 69 6e 64 69 63 61 llers.want.it.to.be..*..*.indica
19660 74 65 64 20 69 74 65 6d 73 2e 20 20 28 4d 6f 72 65 20 66 6c 61 67 20 62 69 74 73 20 6d 61 79 20 ted.items...(More.flag.bits.may.
19680 62 65 20 61 64 64 65 64 20 61 73 20 6e 65 65 64 65 64 2e 29 00 20 2a 20 77 68 69 63 68 20 69 73 be.added.as.needed.)..*.which.is
196a0 20 74 68 65 20 62 69 74 77 69 73 65 20 4f 52 20 6f 66 20 66 6c 61 67 20 76 61 6c 75 65 73 20 74 .the.bitwise.OR.of.flag.values.t
196c0 6f 20 73 75 70 70 72 65 73 73 20 6d 75 74 61 74 69 6e 67 20 6f 66 00 20 2a 20 77 61 6e 74 20 74 o.suppress.mutating.of..*.want.t
196e0 6f 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 54 68 69 73 o.recurse.into.subqueries...This
19700 20 69 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 66 6c 61 67 73 20 61 72 67 75 6d .is.supported.by.the.flags.argum
19720 65 6e 74 2c 00 20 2a 20 74 79 70 69 63 61 6c 6c 79 20 62 65 63 61 75 73 65 20 74 68 65 79 20 6e ent,..*.typically.because.they.n
19740 65 65 64 20 74 6f 20 70 72 6f 63 65 73 73 20 74 68 65 6d 20 73 70 65 63 69 61 6c 6c 79 2c 20 6f eed.to.process.them.specially,.o
19760 72 20 64 6f 6e 27 74 20 61 63 74 75 61 6c 6c 79 00 20 2a 20 53 6f 6d 65 20 63 61 6c 6c 65 72 73 r.don't.actually..*.Some.callers
19780 20 77 61 6e 74 20 74 6f 20 73 75 70 70 72 65 73 73 20 6d 75 74 61 74 69 6e 67 20 6f 66 20 63 65 .want.to.suppress.mutating.of.ce
197a0 72 74 61 69 6e 20 69 74 65 6d 73 20 69 6e 20 74 68 65 20 51 75 65 72 79 2c 00 20 2a 00 20 2a 20 rtain.items.in.the.Query,..*..*.
197c0 64 65 73 63 65 6e 64 69 6e 67 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 20 77 69 74 68 69 descending.into.subqueries.withi
197e0 6e 20 61 20 6d 75 74 61 74 6f 72 2e 00 20 2a 20 6d 75 74 61 74 6f 72 20 69 6e 74 65 6e 64 73 20 n.a.mutator...*.mutator.intends.
19800 74 6f 20 64 65 73 63 65 6e 64 20 69 6e 74 6f 20 73 75 62 71 75 65 72 69 65 73 2e 20 20 49 74 20 to.descend.into.subqueries...It.
19820 69 73 20 61 6c 73 6f 20 75 73 65 66 75 6c 20 66 6f 72 00 20 2a 20 66 6f 72 20 73 74 61 72 74 69 is.also.useful.for..*.for.starti
19840 6e 67 20 61 20 77 61 6c 6b 20 61 74 20 74 6f 70 20 6c 65 76 65 6c 20 6f 66 20 61 20 51 75 65 72 ng.a.walk.at.top.level.of.a.Quer
19860 79 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 00 20 2a 20 77 y.regardless.of.whether.the..*.w
19880 68 65 72 65 20 61 6c 6c 20 74 68 65 20 65 78 70 72 65 73 73 69 6f 6e 20 73 75 62 74 72 65 65 73 here.all.the.expression.subtrees
198a0 20 6f 66 20 61 20 51 75 65 72 79 20 61 72 65 2e 20 20 4e 6f 74 65 20 69 74 20 63 61 6e 20 62 65 .of.a.Query.are...Note.it.can.be
198c0 20 75 73 65 64 00 20 2a 20 54 68 69 73 20 72 6f 75 74 69 6e 65 20 65 78 69 73 74 73 20 6a 75 73 .used..*.This.routine.exists.jus
198e0 74 20 74 6f 20 72 65 64 75 63 65 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 70 6c 61 63 65 73 t.to.reduce.the.number.of.places
19900 20 74 68 61 74 20 6e 65 65 64 20 74 6f 20 6b 6e 6f 77 00 20 2a 00 20 2a 20 71 75 65 72 79 5f 74 .that.need.to.know..*..*.query_t
19920 72 65 65 5f 6d 75 74 61 74 6f 72 20 2d 2d 2d 20 69 6e 69 74 69 61 74 65 20 6d 6f 64 69 66 69 63 ree_mutator.---.initiate.modific
19940 61 74 69 6f 6e 20 6f 66 20 61 20 51 75 65 72 79 27 73 20 65 78 70 72 65 73 73 69 6f 6e 73 00 2f ation.of.a.Query's.expressions./
19960 2a 00 00 00 7d 00 09 72 65 74 75 72 6e 20 4e 55 4c 4c 3b 00 09 2f 2a 20 63 61 6e 27 74 20 67 65 *...}..return.NULL;../*.can't.ge
19980 74 20 68 65 72 65 2c 20 62 75 74 20 6b 65 65 70 20 63 6f 6d 70 69 6c 65 72 20 68 61 70 70 79 20 t.here,.but.keep.compiler.happy.
199a0 2a 2f 00 09 7d 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 20 28 69 6e 74 29 20 6e 6f 64 65 54 */..}....break;......(int).nodeT
199c0 61 67 28 6e 6f 64 65 29 29 3b 00 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 75 6e 72 65 63 ag(node));....elog(ERROR,."unrec
199e0 6f 67 6e 69 7a 65 64 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 64 22 2c 00 09 09 64 65 66 61 75 6c ognized.node.type:.%d",...defaul
19a00 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f t:....break;....}.....return.(No
19a20 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 de.*).newnode;.....MUTATE(newnod
19a40 65 2d 3e 72 65 70 65 61 74 61 62 6c 65 2c 20 74 73 63 2d 3e 72 65 70 65 61 74 61 62 6c 65 2c 20 e->repeatable,.tsc->repeatable,.
19a60 45 78 70 72 20 2a 29 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 61 72 67 Expr.*);.....MUTATE(newnode->arg
19a80 73 2c 20 74 73 63 2d 3e 61 72 67 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 s,.tsc->args,.List.*);.....FLATC
19aa0 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 74 73 63 2c 20 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 OPY(newnode,.tsc,.TableSampleCla
19ac0 75 73 65 29 3b 00 00 09 09 09 09 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a 6e 65 use);......TableSampleClause.*ne
19ae0 77 6e 6f 64 65 3b 00 09 09 09 09 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a 74 73 wnode;.....TableSampleClause.*ts
19b00 63 20 3d 20 28 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 3b 00 c.=.(TableSampleClause.*).node;.
19b20 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 3a ...{...case.T_TableSampleClause:
19b40 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 ....break;....}.....return.(Node
19b60 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 41 73 73 75 6d 65 20 77 65 20 6e 65 .*).newnode;...../*.Assume.we.ne
19b80 65 64 20 6e 6f 74 20 63 6f 70 79 20 74 68 65 20 63 6f 6c 64 65 66 20 69 6e 66 6f 20 6c 69 73 74 ed.not.copy.the.coldef.info.list
19ba0 73 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 66 75 6e 63 65 78 70 s.*/.....MUTATE(newnode->funcexp
19bc0 72 2c 20 72 74 66 75 6e 63 2d 3e 66 75 6e 63 65 78 70 72 2c 20 4e 6f 64 65 20 2a 29 3b 00 09 09 r,.rtfunc->funcexpr,.Node.*);...
19be0 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 72 74 66 75 6e 63 2c 20 52 61 6e 67 ..FLATCOPY(newnode,.rtfunc,.Rang
19c00 65 54 62 6c 46 75 6e 63 74 69 6f 6e 29 3b 00 00 09 09 09 09 52 61 6e 67 65 54 62 6c 46 75 6e 63 eTblFunction);......RangeTblFunc
19c20 74 69 6f 6e 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 52 61 6e 67 65 54 62 6c 46 75 6e 63 74 tion.*newnode;.....RangeTblFunct
19c40 69 6f 6e 20 2a 72 74 66 75 6e 63 20 3d 20 28 52 61 6e 67 65 54 62 6c 46 75 6e 63 74 69 6f 6e 20 ion.*rtfunc.=.(RangeTblFunction.
19c60 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 54 62 6c 46 *).node;....{...case.T_RangeTblF
19c80 75 6e 63 74 69 6f 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 unction:....break;....}.....retu
19ca0 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 2f 2a 20 41 73 73 75 rn.(Node.*).newnode;...../*.Assu
19cc0 6d 65 20 77 65 20 6e 65 65 64 20 6e 6f 74 20 63 6f 70 79 20 74 68 65 20 72 65 6c 69 64 73 20 62 me.we.need.not.copy.the.relids.b
19ce0 69 74 6d 61 70 73 65 74 73 20 2a 2f 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d itmapsets.*/.....MUTATE(newnode-
19d00 3e 70 68 5f 76 61 72 2c 20 70 68 69 6e 66 6f 2d 3e 70 68 5f 76 61 72 2c 20 50 6c 61 63 65 48 6f >ph_var,.phinfo->ph_var,.PlaceHo
19d20 6c 64 65 72 56 61 72 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 lderVar.*);.....FLATCOPY(newnode
19d40 2c 20 70 68 69 6e 66 6f 2c 20 50 6c 61 63 65 48 6f 6c 64 65 72 49 6e 66 6f 29 3b 00 00 09 09 09 ,.phinfo,.PlaceHolderInfo);.....
19d60 09 50 6c 61 63 65 48 6f 6c 64 65 72 49 6e 66 6f 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 50 .PlaceHolderInfo.*newnode;.....P
19d80 6c 61 63 65 48 6f 6c 64 65 72 49 6e 66 6f 20 2a 70 68 69 6e 66 6f 20 3d 20 28 50 6c 61 63 65 48 laceHolderInfo.*phinfo.=.(PlaceH
19da0 6f 6c 64 65 72 49 6e 66 6f 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 olderInfo.*).node;....{...case.T
19dc0 5f 50 6c 61 63 65 48 6f 6c 64 65 72 49 6e 66 6f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d _PlaceHolderInfo:....break;....}
19de0 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 .....return.(Node.*).newnode;...
19e00 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f 64 65 2d 3e 74 72 61 6e 73 6c 61 74 65 64 5f 76 61 72 ..MUTATE(newnode->translated_var
19e20 73 2c 20 61 70 70 69 6e 66 6f 2d 3e 74 72 61 6e 73 6c 61 74 65 64 5f 76 61 72 73 2c 20 4c 69 73 s,.appinfo->translated_vars,.Lis
19e40 74 20 2a 29 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 61 70 70 69 t.*);.....FLATCOPY(newnode,.appi
19e60 6e 66 6f 2c 20 41 70 70 65 6e 64 52 65 6c 49 6e 66 6f 29 3b 00 00 09 09 09 09 41 70 70 65 6e 64 nfo,.AppendRelInfo);......Append
19e80 52 65 6c 49 6e 66 6f 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 41 70 70 65 6e 64 52 65 6c 49 RelInfo.*newnode;.....AppendRelI
19ea0 6e 66 6f 20 2a 61 70 70 69 6e 66 6f 20 3d 20 28 41 70 70 65 6e 64 52 65 6c 49 6e 66 6f 20 2a 29 nfo.*appinfo.=.(AppendRelInfo.*)
19ec0 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 70 70 65 6e 64 52 65 6c 49 6e .node;....{...case.T_AppendRelIn
19ee0 66 6f 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 72 65 74 75 72 6e 20 28 4e fo:....break;....}.....return.(N
19f00 6f 64 65 20 2a 29 20 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 6e 6f ode.*).newnode;.....MUTATE(newno
19f20 64 65 2d 3e 65 78 70 72 2c 20 6e 65 77 6e 6f 64 65 2d 3e 65 78 70 72 2c 20 4e 6f 64 65 20 2a 29 de->expr,.newnode->expr,.Node.*)
19f40 3b 00 09 09 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 6e 6f 64 65 2c 20 69 6e 66 65 72 65 6e 63 ;.....FLATCOPY(newnode,.inferenc
19f60 65 65 6c 65 6d 64 65 78 70 72 2c 20 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 29 3b 00 00 09 09 09 eelemdexpr,.InferenceElem);.....
19f80 09 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a 6e 65 77 6e 6f 64 65 3b 00 09 09 09 09 49 6e 66 .InferenceElem.*newnode;.....Inf
19fa0 65 72 65 6e 63 65 45 6c 65 6d 20 2a 69 6e 66 65 72 65 6e 63 65 65 6c 65 6d 64 65 78 70 72 20 3d erenceElem.*inferenceelemdexpr.=
19fc0 20 28 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 .(InferenceElem.*).node;....{...
19fe0 63 61 73 65 20 54 5f 49 6e 66 65 72 65 6e 63 65 45 6c 65 6d 3a 00 09 09 09 62 72 65 61 6b 3b 00 case.T_InferenceElem:....break;.
1a000 61 64 00 00 49 00 00 00 61 02 00 00 00 10 00 00 7f 00 00 00 00 00 00 00 d1 0f 00 00 9d 0f 00 00 ad..I...a.......................
1a020 79 0f 00 00 6a 0f 00 00 68 0f 00 00 67 0f 00 00 64 0f 00 00 17 0f 00 00 d1 0e 00 00 c5 0e 00 00 y...j...h...g...d...............
1a040 c1 0e 00 00 ba 0e 00 00 98 0e 00 00 7e 0e 00 00 6a 0e 00 00 5a 0e 00 00 58 0e 00 00 41 0e 00 00 ............~...j...Z...X...A...
1a060 30 0e 00 00 2f 0e 00 00 1a 0e 00 00 17 0e 00 00 e2 0d 00 00 c9 0d 00 00 c8 0d 00 00 a0 0d 00 00 0.../...........................
1a080 88 0d 00 00 84 0d 00 00 6e 0d 00 00 3c 0d 00 00 1e 0d 00 00 e4 0c 00 00 d9 0c 00 00 c8 0c 00 00 ........n...<...................
1a0a0 b0 0c 00 00 a5 0c 00 00 8f 0c 00 00 62 0c 00 00 5c 0c 00 00 20 0c 00 00 e6 0b 00 00 e0 0b 00 00 ............b...\...............
1a0c0 d7 0b 00 00 d1 0b 00 00 a7 0b 00 00 74 0b 00 00 6e 0b 00 00 63 0b 00 00 51 0b 00 00 26 0b 00 00 ............t...n...c...Q...&...
1a0e0 e6 0a 00 00 dd 0a 00 00 d7 0a 00 00 ae 0a 00 00 71 0a 00 00 6b 0a 00 00 60 0a 00 00 4a 0a 00 00 ................q...k...`...J...
1a100 13 0a 00 00 08 0a 00 00 f4 09 00 00 b7 09 00 00 ac 09 00 00 a8 09 00 00 6b 09 00 00 49 09 00 00 ........................k...I...
1a120 46 09 00 00 37 09 00 00 35 09 00 00 34 09 00 00 31 09 00 00 fe 08 00 00 fb 08 00 00 b2 08 00 00 F...7...5...4...1...............
1a140 67 08 00 00 1a 08 00 00 f9 07 00 00 f5 07 00 00 f0 07 00 00 c4 07 00 00 a9 07 00 00 92 07 00 00 g...............................
1a160 7f 07 00 00 7d 07 00 00 5e 07 00 00 33 07 00 00 22 07 00 00 10 07 00 00 ff 06 00 00 f9 06 00 00 ....}...^...3..."...............
1a180 d9 06 00 00 d7 06 00 00 d6 06 00 00 d3 06 00 00 9f 06 00 00 9c 06 00 00 52 06 00 00 06 06 00 00 ........................R.......
1a1a0 b8 05 00 00 97 05 00 00 93 05 00 00 8c 05 00 00 5f 05 00 00 41 05 00 00 29 05 00 00 15 05 00 00 ................_...A...).......
1a1c0 13 05 00 00 f4 04 00 00 bf 04 00 00 a9 04 00 00 93 04 00 00 7e 04 00 00 78 04 00 00 57 04 00 00 ....................~...x...W...
1a1e0 55 04 00 00 54 04 00 00 53 04 00 00 50 04 00 00 19 04 00 00 16 04 00 00 cb 03 00 00 81 03 00 00 U...T...S...P...................
1a200 39 03 00 00 f0 02 00 00 a9 02 00 00 64 02 00 00 61 02 00 00 60 02 00 00 00 00 00 00 00 00 00 00 9...........d...a...`...........
1a220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a260 00 20 2a 00 20 2a 20 62 6f 75 6e 64 61 72 69 65 73 3a 20 77 65 20 64 65 73 63 65 6e 64 20 74 6f ..*..*.boundaries:.we.descend.to
1a280 20 65 76 65 72 79 74 68 69 6e 67 20 74 68 61 74 27 73 20 70 6f 73 73 69 62 6c 79 20 69 6e 74 65 .everything.that's.possibly.inte
1a2a0 72 65 73 74 69 6e 67 2e 00 20 2a 20 55 6e 6c 69 6b 65 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 resting...*.Unlike.expression_tr
1a2c0 65 65 5f 77 61 6c 6b 65 72 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 73 70 65 63 69 61 6c 20 72 ee_walker,.there.is.no.special.r
1a2e0 75 6c 65 20 61 62 6f 75 74 20 71 75 65 72 79 00 20 2a 20 63 6f 6d 62 69 6e 65 64 20 77 61 6c 6b ule.about.query..*.combined.walk
1a300 65 72 2c 20 73 6f 20 77 65 20 6b 65 65 70 20 74 68 65 6d 20 73 65 70 61 72 61 74 65 20 69 6e 20 er,.so.we.keep.them.separate.in.
1a320 74 68 65 20 6e 61 6d 65 20 6f 66 20 65 66 66 69 63 69 65 6e 63 79 2e 29 00 20 2a 20 66 6f 75 6e the.name.of.efficiency.)..*.foun
1a340 64 20 69 6e 20 72 61 77 20 67 72 61 6d 6d 61 72 20 6f 75 74 70 75 74 2e 20 20 28 54 68 65 72 65 d.in.raw.grammar.output...(There
1a360 20 69 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 61 6e 79 20 6e 65 65 64 20 66 6f 72 20 61 .is.not.currently.any.need.for.a
1a380 00 20 2a 20 77 61 6c 6b 69 6e 67 20 70 6f 73 74 2d 61 6e 61 6c 79 73 69 73 20 70 61 72 73 65 20 ..*.walking.post-analysis.parse.
1a3a0 74 72 65 65 73 2c 20 69 74 20 6b 6e 6f 77 73 20 68 6f 77 20 74 6f 20 77 61 6c 6b 20 74 68 65 20 trees,.it.knows.how.to.walk.the.
1a3c0 6e 6f 64 65 20 74 79 70 65 73 00 20 2a 20 54 68 69 73 20 68 61 73 20 65 78 61 63 74 6c 79 20 74 node.types..*.This.has.exactly.t
1a3e0 68 65 20 73 61 6d 65 20 41 50 49 20 61 73 20 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 he.same.API.as.expression_tree_w
1a400 61 6c 6b 65 72 2c 20 62 75 74 20 69 6e 73 74 65 61 64 20 6f 66 00 20 2a 00 20 2a 20 72 61 77 5f alker,.but.instead.of..*..*.raw_
1a420 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 2d 2d 2d 20 77 61 6c 6b 20 expression_tree_walker.---.walk.
1a440 72 61 77 20 70 61 72 73 65 20 74 72 65 65 73 00 2f 2a 00 00 00 7d 00 09 09 72 65 74 75 72 6e 20 raw.parse.trees./*...}...return.
1a460 6d 75 74 61 74 6f 72 28 6e 6f 64 65 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 65 6c 73 65 00 09 09 mutator(node,.context);..else...
1a480 09 09 09 09 09 09 09 09 20 20 20 66 6c 61 67 73 29 3b 00 09 09 09 09 09 09 09 09 09 09 20 20 20 ...........flags);..............
1a4a0 63 6f 6e 74 65 78 74 2c 00 09 09 09 09 09 09 09 09 09 09 20 20 20 6d 75 74 61 74 6f 72 2c 00 09 context,..............mutator,..
1a4c0 09 72 65 74 75 72 6e 20 28 4e 6f 64 65 20 2a 29 20 71 75 65 72 79 5f 74 72 65 65 5f 6d 75 74 61 .return.(Node.*).query_tree_muta
1a4e0 74 6f 72 28 28 51 75 65 72 79 20 2a 29 20 6e 6f 64 65 2c 00 09 69 66 20 28 6e 6f 64 65 20 26 26 tor((Query.*).node,..if.(node.&&
1a500 20 49 73 41 28 6e 6f 64 65 2c 20 51 75 65 72 79 29 29 00 7b 00 09 09 09 09 09 09 09 09 20 69 6e .IsA(node,.Query)).{..........in
1a520 74 20 66 6c 61 67 73 29 00 09 09 09 09 09 09 09 09 20 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 2c t.flags)..........void.*context,
1a540 00 09 09 09 09 09 09 09 09 20 4e 6f 64 65 20 2a 28 2a 6d 75 74 61 74 6f 72 29 20 28 29 2c 00 71 ..........Node.*(*mutator).(),.q
1a560 75 65 72 79 5f 6f 72 5f 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 28 uery_or_expression_tree_mutator(
1a580 4e 6f 64 65 20 2a 6e 6f 64 65 2c 00 4e 6f 64 65 20 2a 00 20 2a 2f 00 20 2a 20 66 6f 72 20 74 68 Node.*node,.Node.*..*/..*.for.th
1a5a0 65 20 6f 75 74 65 72 6d 6f 73 74 20 51 75 65 72 79 20 6e 6f 64 65 2e 00 20 2a 20 74 68 65 20 72 e.outermost.Query.node...*.the.r
1a5c0 65 63 75 72 73 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 6d 75 74 61 74 6f 72 27 73 20 6e 6f 72 6d ecursion.when.the.mutator's.norm
1a5e0 61 6c 20 63 68 61 6e 67 65 20 6f 66 20 73 74 61 74 65 20 69 73 20 6e 6f 74 20 61 70 70 72 6f 70 al.change.of.state.is.not.approp
1a600 72 69 61 74 65 00 20 2a 20 65 6c 73 65 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 74 68 65 20 6d 75 riate..*.else.will.invoke.the.mu
1a620 74 61 74 6f 72 20 64 69 72 65 63 74 6c 79 2e 20 20 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 tator.directly...This.is.a.usefu
1a640 6c 20 77 61 79 20 6f 66 20 73 74 61 72 74 69 6e 67 00 20 2a 20 54 68 69 73 20 72 6f 75 74 69 6e l.way.of.starting..*.This.routin
1a660 65 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 71 75 65 72 79 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 e.will.invoke.query_tree_mutator
1a680 20 69 66 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c 00 20 2a 00 20 .if.called.on.a.Query.node,..*..
1a6a0 2a 20 71 75 65 72 79 5f 6f 72 5f 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 6d 75 74 61 74 *.query_or_expression_tree_mutat
1a6c0 6f 72 20 2d 2d 2d 20 68 79 62 72 69 64 20 66 6f 72 6d 00 2f 2a 00 00 7d 00 09 09 72 65 74 75 72 or.---.hybrid.form./*..}...retur
1a6e0 6e 20 77 61 6c 6b 65 72 28 6e 6f 64 65 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 65 6c 73 65 00 09 n.walker(node,.context);..else..
1a700 09 09 09 09 09 09 09 20 66 6c 61 67 73 29 3b 00 09 09 09 09 09 09 09 09 20 63 6f 6e 74 65 78 74 ........flags);..........context
1a720 2c 00 09 09 09 09 09 09 09 09 20 77 61 6c 6b 65 72 2c 00 09 09 72 65 74 75 72 6e 20 71 75 65 72 ,..........walker,...return.quer
1a740 79 5f 74 72 65 65 5f 77 61 6c 6b 65 72 28 28 51 75 65 72 79 20 2a 29 20 6e 6f 64 65 2c 00 09 69 y_tree_walker((Query.*).node,..i
1a760 66 20 28 6e 6f 64 65 20 26 26 20 49 73 41 28 6e 6f 64 65 2c 20 51 75 65 72 79 29 29 00 7b 00 09 f.(node.&&.IsA(node,.Query)).{..
1a780 09 09 09 09 09 09 09 69 6e 74 20 66 6c 61 67 73 29 00 09 09 09 09 09 09 09 09 76 6f 69 64 20 2a .......int.flags).........void.*
1a7a0 63 6f 6e 74 65 78 74 2c 00 09 09 09 09 09 09 09 09 62 6f 6f 6c 20 28 2a 77 61 6c 6b 65 72 29 20 context,.........bool.(*walker).
1a7c0 28 29 2c 00 71 75 65 72 79 5f 6f 72 5f 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c (),.query_or_expression_tree_wal
1a7e0 6b 65 72 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 00 62 6f 6f 6c 00 20 2a 2f 00 20 2a 20 66 6f 72 20 ker(Node.*node,.bool..*/..*.for.
1a800 74 68 65 20 6f 75 74 65 72 6d 6f 73 74 20 51 75 65 72 79 20 6e 6f 64 65 2e 00 20 2a 20 74 68 65 the.outermost.Query.node...*.the
1a820 20 72 65 63 75 72 73 69 6f 6e 20 77 68 65 6e 20 74 68 65 20 77 61 6c 6b 65 72 27 73 20 6e 6f 72 .recursion.when.the.walker's.nor
1a840 6d 61 6c 20 63 68 61 6e 67 65 20 6f 66 20 73 74 61 74 65 20 69 73 20 6e 6f 74 20 61 70 70 72 6f mal.change.of.state.is.not.appro
1a860 70 72 69 61 74 65 00 20 2a 20 65 6c 73 65 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 74 68 65 20 77 priate..*.else.will.invoke.the.w
1a880 61 6c 6b 65 72 20 64 69 72 65 63 74 6c 79 2e 20 20 54 68 69 73 20 69 73 20 61 20 75 73 65 66 75 alker.directly...This.is.a.usefu
1a8a0 6c 20 77 61 79 20 6f 66 20 73 74 61 72 74 69 6e 67 00 20 2a 20 54 68 69 73 20 72 6f 75 74 69 6e l.way.of.starting..*.This.routin
1a8c0 65 20 77 69 6c 6c 20 69 6e 76 6f 6b 65 20 71 75 65 72 79 5f 74 72 65 65 5f 77 61 6c 6b 65 72 20 e.will.invoke.query_tree_walker.
1a8e0 69 66 20 63 61 6c 6c 65 64 20 6f 6e 20 61 20 51 75 65 72 79 20 6e 6f 64 65 2c 00 20 2a 00 20 2a if.called.on.a.Query.node,..*..*
1a900 20 71 75 65 72 79 5f 6f 72 5f 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b 65 72 .query_or_expression_tree_walker
1a920 20 2d 2d 2d 20 68 79 62 72 69 64 20 66 6f 72 6d 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 6e .---.hybrid.form./*..}..return.n
1a940 65 77 72 74 3b 00 09 7d 00 09 09 6e 65 77 72 74 20 3d 20 6c 61 70 70 65 6e 64 28 6e 65 77 72 74 ewrt;..}...newrt.=.lappend(newrt
1a960 2c 20 6e 65 77 72 74 65 29 3b 00 09 09 4d 55 54 41 54 45 28 6e 65 77 72 74 65 2d 3e 73 65 63 75 ,.newrte);...MUTATE(newrte->secu
1a980 72 69 74 79 51 75 61 6c 73 2c 20 72 74 65 2d 3e 73 65 63 75 72 69 74 79 51 75 61 6c 73 2c 20 4c rityQuals,.rte->securityQuals,.L
1a9a0 69 73 74 20 2a 29 3b 00 09 09 7d 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 4d 55 54 41 54 ist.*);...}.....break;.....MUTAT
1a9c0 45 28 6e 65 77 72 74 65 2d 3e 76 61 6c 75 65 73 5f 6c 69 73 74 73 2c 20 72 74 65 2d 3e 76 61 6c E(newrte->values_lists,.rte->val
1a9e0 75 65 73 5f 6c 69 73 74 73 2c 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 63 61 73 65 20 52 54 45 5f ues_lists,.List.*);....case.RTE_
1aa00 56 41 4c 55 45 53 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 4d 55 54 41 54 45 28 6e 65 VALUES:.....break;.....MUTATE(ne
1aa20 77 72 74 65 2d 3e 66 75 6e 63 74 69 6f 6e 73 2c 20 72 74 65 2d 3e 66 75 6e 63 74 69 6f 6e 73 2c wrte->functions,.rte->functions,
1aa40 20 4c 69 73 74 20 2a 29 3b 00 09 09 09 63 61 73 65 20 52 54 45 5f 46 55 4e 43 54 49 4f 4e 3a 00 .List.*);....case.RTE_FUNCTION:.
1aa60 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 7d 00 09 09 09 09 09 6e 65 77 72 74 65 2d 3e 6a 6f ....break;.....}......newrte->jo
1aa80 69 6e 61 6c 69 61 73 76 61 72 73 20 3d 20 63 6f 70 79 4f 62 6a 65 63 74 28 72 74 65 2d 3e 6a 6f inaliasvars.=.copyObject(rte->jo
1aaa0 69 6e 61 6c 69 61 73 76 61 72 73 29 3b 00 09 09 09 09 09 2f 2a 20 65 6c 73 65 2c 20 63 6f 70 79 inaliasvars);....../*.else,.copy
1aac0 20 6a 6f 69 6e 20 61 6c 69 61 73 65 73 20 61 73 2d 69 73 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 .join.aliases.as-is.*/.....{....
1aae0 09 65 6c 73 65 00 09 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 72 74 65 2d 3e 6a 6f 69 6e 61 6c .else......MUTATE(newrte->joinal
1ab00 69 61 73 76 61 72 73 2c 20 72 74 65 2d 3e 6a 6f 69 6e 61 6c 69 61 73 76 61 72 73 2c 20 4c 69 73 iasvars,.rte->joinaliasvars,.Lis
1ab20 74 20 2a 29 3b 00 09 09 09 09 69 66 20 28 21 28 66 6c 61 67 73 20 26 20 51 54 57 5f 49 47 4e 4f t.*);.....if.(!(flags.&.QTW_IGNO
1ab40 52 45 5f 4a 4f 49 4e 41 4c 49 41 53 45 53 29 29 00 09 09 09 63 61 73 65 20 52 54 45 5f 4a 4f 49 RE_JOINALIASES))....case.RTE_JOI
1ab60 4e 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 7d 00 09 09 09 09 09 6e 65 77 72 74 65 2d N:.....break;.....}......newrte-
1ab80 3e 73 75 62 71 75 65 72 79 20 3d 20 63 6f 70 79 4f 62 6a 65 63 74 28 72 74 65 2d 3e 73 75 62 71 >subquery.=.copyObject(rte->subq
1aba0 75 65 72 79 29 3b 00 09 09 09 09 09 2f 2a 20 65 6c 73 65 2c 20 63 6f 70 79 20 52 54 20 73 75 62 uery);....../*.else,.copy.RT.sub
1abc0 71 75 65 72 69 65 73 20 61 73 2d 69 73 20 2a 2f 00 09 09 09 09 7b 00 09 09 09 09 65 6c 73 65 00 queries.as-is.*/.....{.....else.
1abe0 09 09 09 09 7d 00 09 09 09 09 09 4d 55 54 41 54 45 28 6e 65 77 72 74 65 2d 3e 73 75 62 71 75 65 ....}......MUTATE(newrte->subque
1ac00 72 79 2c 20 6e 65 77 72 74 65 2d 3e 73 75 62 71 75 65 72 79 2c 20 51 75 65 72 79 20 2a 29 3b 00 ry,.newrte->subquery,.Query.*);.
1ac20 09 09 09 09 09 43 48 45 43 4b 46 4c 41 54 43 4f 50 59 28 6e 65 77 72 74 65 2d 3e 73 75 62 71 75 .....CHECKFLATCOPY(newrte->subqu
1ac40 65 72 79 2c 20 72 74 65 2d 3e 73 75 62 71 75 65 72 79 2c 20 51 75 65 72 79 29 3b 00 09 09 09 09 ery,.rte->subquery,.Query);.....
1ac60 7b 00 09 09 09 09 69 66 20 28 21 28 66 6c 61 67 73 20 26 20 51 54 57 5f 49 47 4e 4f 52 45 5f 52 {.....if.(!(flags.&.QTW_IGNORE_R
1ac80 54 5f 53 55 42 51 55 45 52 49 45 53 29 29 00 09 09 09 63 61 73 65 20 52 54 45 5f 53 55 42 51 55 T_SUBQUERIES))....case.RTE_SUBQU
1aca0 45 52 59 3a 00 09 09 09 09 62 72 65 61 6b 3b 00 09 09 09 09 2f 2a 20 6e 6f 74 68 69 6e 67 20 74 ERY:.....break;...../*.nothing.t
1acc0 6f 20 64 6f 20 2a 2f 00 09 09 09 63 61 73 65 20 52 54 45 5f 43 54 45 3a 00 09 09 09 09 62 72 65 o.do.*/....case.RTE_CTE:.....bre
1ace0 61 6b 3b 00 09 09 09 09 2f 2a 20 77 65 20 64 6f 6e 27 74 20 62 6f 74 68 65 72 20 74 6f 20 63 6f ak;...../*.we.don't.bother.to.co
1ad00 70 79 20 65 72 65 66 2c 20 61 6c 69 61 73 65 73 2c 20 65 74 63 3b 20 4f 4b 3f 20 2a 2f 00 09 09 py.eref,.aliases,.etc;.OK?.*/...
1ad20 09 09 09 20 20 20 54 61 62 6c 65 53 61 6d 70 6c 65 43 6c 61 75 73 65 20 2a 29 3b 00 09 09 09 09 ......TableSampleClause.*);.....
1ad40 4d 55 54 41 54 45 28 6e 65 77 72 74 65 2d 3e 74 61 62 6c 65 73 61 6d 70 6c 65 2c 20 72 74 65 2d MUTATE(newrte->tablesample,.rte-
1ad60 3e 74 61 62 6c 65 73 61 6d 70 6c 65 2c 00 09 09 09 63 61 73 65 20 52 54 45 5f 52 45 4c 41 54 49 >tablesample,....case.RTE_RELATI
1ad80 4f 4e 3a 00 09 09 7b 00 09 09 73 77 69 74 63 68 20 28 72 74 65 2d 3e 72 74 65 6b 69 6e 64 29 00 ON:...{...switch.(rte->rtekind).
1ada0 09 09 46 4c 41 54 43 4f 50 59 28 6e 65 77 72 74 65 2c 20 72 74 65 2c 20 52 61 6e 67 65 54 62 6c ..FLATCOPY(newrte,.rte,.RangeTbl
1adc0 45 6e 74 72 79 29 3b 00 00 09 09 52 61 6e 67 65 54 62 6c 45 6e 74 72 79 20 2a 6e 65 77 72 74 65 Entry);....RangeTblEntry.*newrte
1ade0 3b 00 09 09 52 61 6e 67 65 54 62 6c 45 6e 74 72 79 20 2a 72 74 65 20 3d 20 28 52 61 6e 67 65 54 ;...RangeTblEntry.*rte.=.(RangeT
1ae00 62 6c 45 6e 74 72 79 20 2a 29 20 6c 66 69 72 73 74 28 72 74 29 3b 00 09 7b 00 09 66 6f 72 65 61 blEntry.*).lfirst(rt);..{..forea
1ae20 63 68 28 72 74 2c 20 72 74 61 62 6c 65 29 00 00 09 4c 69 73 74 43 65 6c 6c 20 20 20 2a 72 74 3b ch(rt,.rtable)...ListCell...*rt;
1ae40 00 09 4c 69 73 74 09 20 20 20 2a 6e 65 77 72 74 20 3d 20 4e 49 4c 3b 00 7b 00 09 09 09 09 09 69 ..List....*newrt.=.NIL;.{......i
1ae60 6e 74 20 66 6c 61 67 73 29 00 09 09 09 09 09 76 6f 69 64 20 2a 63 6f 6e 74 65 78 74 2c 00 09 09 nt.flags)......void.*context,...
1ae80 09 09 09 4e 6f 64 65 20 2a 28 2a 6d 75 74 61 74 6f 72 29 20 28 29 2c 00 72 61 6e 67 65 5f 74 61 ...Node.*(*mutator).(),.range_ta
1aea0 62 6c 65 5f 6d 75 74 61 74 6f 72 28 4c 69 73 74 20 2a 72 74 61 62 6c 65 2c 00 4c 69 73 74 20 2a ble_mutator(List.*rtable,.List.*
1aec0 00 20 2a 2f 00 20 2a 20 69 74 73 20 6f 77 6e 2e 00 20 2a 20 61 20 71 75 65 72 79 27 73 20 72 61 ..*/..*.its.own...*.a.query's.ra
1aee0 6e 67 65 74 61 62 6c 65 2e 20 20 54 68 69 73 20 69 73 20 73 70 6c 69 74 20 6f 75 74 20 73 69 6e ngetable...This.is.split.out.sin
1af00 63 65 20 69 74 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 6f 6e 00 20 2a 20 72 61 6e 67 65 5f ce.it.can.be.useful.on..*.range_
1af20 74 61 62 6c 65 5f 6d 75 74 61 74 6f 72 20 69 73 20 6a 75 73 74 20 74 68 65 20 70 61 72 74 20 6f table_mutator.is.just.the.part.o
1af40 66 20 71 75 65 72 79 5f 74 72 65 65 5f 6d 75 74 61 74 6f 72 20 74 68 61 74 20 70 72 6f 63 65 73 f.query_tree_mutator.that.proces
1af60 73 65 73 00 2f 2a 00 00 7d 00 09 72 65 74 75 72 6e 20 71 75 65 72 79 3b 00 09 09 09 09 09 09 09 ses./*..}..return.query;........
1af80 09 09 09 6d 75 74 61 74 6f 72 2c 20 63 6f 6e 74 65 78 74 2c 20 66 6c 61 67 73 29 3b 00 09 71 75 ...mutator,.context,.flags);..qu
1afa0 65 72 79 2d 3e 72 74 61 62 6c 65 20 3d 20 72 61 6e 67 65 5f 74 61 62 6c 65 5f 6d 75 74 61 74 6f ery->rtable.=.range_table_mutato
1afc0 72 28 71 75 65 72 79 2d 3e 72 74 61 62 6c 65 2c 00 09 09 71 75 65 72 79 2d 3e 63 74 65 4c 69 73 r(query->rtable,...query->cteLis
1afe0 74 20 3d 20 63 6f 70 79 4f 62 6a 65 63 74 28 71 75 65 72 79 2d 3e 63 74 65 4c 69 73 74 29 3b 00 t.=.copyObject(query->cteList);.
1b000 61 64 00 00 0f 00 00 00 53 02 00 00 00 10 00 00 8a 00 00 00 00 00 00 00 b6 0f 00 00 78 0f 00 00 ad......S...................x...
1b020 74 0f 00 00 6f 0f 00 00 48 0f 00 00 2c 0f 00 00 14 0f 00 00 12 0f 00 00 ff 0e 00 00 fe 0e 00 00 t...o...H...,...................
1b040 fa 0e 00 00 b1 0e 00 00 8a 0e 00 00 85 0e 00 00 72 0e 00 00 62 0e 00 00 61 0e 00 00 1b 0e 00 00 ................r...b...a.......
1b060 05 0e 00 00 04 0e 00 00 ec 0d 00 00 e9 0d 00 00 d2 0d 00 00 ba 0d 00 00 a8 0d 00 00 98 0d 00 00 ................................
1b080 87 0d 00 00 73 0d 00 00 64 0d 00 00 51 0d 00 00 3f 0d 00 00 2e 0d 00 00 ff 0c 00 00 f5 0c 00 00 ....s...d...Q...?...............
1b0a0 e5 0c 00 00 ae 0c 00 00 a4 0c 00 00 91 0c 00 00 5a 0c 00 00 43 0c 00 00 09 0c 00 00 f7 0b 00 00 ................Z...C...........
1b0c0 f2 0b 00 00 c6 0b 00 00 c5 0b 00 00 99 0b 00 00 87 0b 00 00 53 0b 00 00 26 0b 00 00 14 0b 00 00 ....................S...&.......
1b0e0 0f 0b 00 00 05 0b 00 00 f2 0a 00 00 ed 0a 00 00 bf 0a 00 00 be 0a 00 00 96 0a 00 00 84 0a 00 00 ................................
1b100 44 0a 00 00 22 0a 00 00 1c 0a 00 00 e9 09 00 00 e8 09 00 00 c6 09 00 00 a0 09 00 00 8d 09 00 00 D..."...........................
1b120 65 09 00 00 52 09 00 00 4c 09 00 00 1e 09 00 00 0c 09 00 00 07 09 00 00 fd 08 00 00 eb 08 00 00 e...R...L.......................
1b140 c0 08 00 00 8b 08 00 00 74 08 00 00 3a 08 00 00 25 08 00 00 ed 07 00 00 db 07 00 00 d6 07 00 00 ........t...:...%...............
1b160 ac 07 00 00 ab 07 00 00 7f 07 00 00 6d 07 00 00 35 07 00 00 0f 07 00 00 fd 06 00 00 f8 06 00 00 ............m...5...............
1b180 ee 06 00 00 db 06 00 00 a6 06 00 00 90 06 00 00 58 06 00 00 45 06 00 00 40 06 00 00 16 06 00 00 ................X...E...@.......
1b1a0 15 06 00 00 f0 05 00 00 de 05 00 00 b9 05 00 00 a7 05 00 00 81 05 00 00 6f 05 00 00 49 05 00 00 ........................o...I...
1b1c0 37 05 00 00 0a 05 00 00 05 05 00 00 fb 04 00 00 e6 04 00 00 e1 04 00 00 b5 04 00 00 b4 04 00 00 7...............................
1b1e0 90 04 00 00 7e 04 00 00 49 04 00 00 07 04 00 00 dd 03 00 00 cb 03 00 00 c6 03 00 00 bc 03 00 00 ....~...I.......................
1b200 ad 03 00 00 8d 03 00 00 88 03 00 00 58 03 00 00 46 03 00 00 41 03 00 00 37 03 00 00 22 03 00 00 ............X...F...A...7..."...
1b220 1d 03 00 00 f1 02 00 00 f0 02 00 00 c7 02 00 00 b5 02 00 00 90 02 00 00 7e 02 00 00 53 02 00 00 ........................~...S...
1b240 52 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 R......................if.(walke
1b260 72 28 73 74 6d 74 2d 3e 73 65 6c 65 63 74 53 74 6d 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 r(stmt->selectStmt,.context))...
1b280 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 ...return.true;.....if.(walker(s
1b2a0 74 6d 74 2d 3e 63 6f 6c 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e tmt->cols,.context))......return
1b2c0 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 72 65 6c 61 .true;.....if.(walker(stmt->rela
1b2e0 74 69 6f 6e 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 49 6e 73 65 72 74 53 74 6d 74 20 tion,.context))......InsertStmt.
1b300 2a 73 74 6d 74 20 3d 20 28 49 6e 73 65 72 74 53 74 6d 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 *stmt.=.(InsertStmt.*).node;....
1b320 7b 00 09 09 63 61 73 65 20 54 5f 49 6e 73 65 72 74 53 74 6d 74 3a 00 09 09 09 62 72 65 61 6b 3b {...case.T_InsertStmt:....break;
1b340 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 ....}......return.true;.....if.(
1b360 77 61 6c 6b 65 72 28 28 4e 6f 64 65 20 2a 29 20 6c 66 69 72 73 74 28 74 65 6d 70 29 2c 20 63 6f walker((Node.*).lfirst(temp),.co
1b380 6e 74 65 78 74 29 29 00 09 09 09 7b 00 09 09 09 66 6f 72 65 61 63 68 28 74 65 6d 70 2c 20 28 4c ntext))....{....foreach(temp,.(L
1b3a0 69 73 74 20 2a 29 20 6e 6f 64 65 29 00 09 09 63 61 73 65 20 54 5f 4c 69 73 74 3a 00 09 09 09 62 ist.*).node)...case.T_List:....b
1b3c0 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 reak;....}......return.true;....
1b3e0 09 69 66 20 28 77 61 6c 6b 65 72 28 69 6e 74 6f 2d 3e 76 69 65 77 51 75 65 72 79 2c 20 63 6f 6e .if.(walker(into->viewQuery,.con
1b400 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 76 69 65 77 51 75 65 72 79 20 73 68 6f 75 6c 64 20 62 text))...../*.viewQuery.should.b
1b420 65 20 6e 75 6c 6c 20 69 6e 20 72 61 77 20 70 61 72 73 65 74 72 65 65 2c 20 62 75 74 20 63 68 65 e.null.in.raw.parsetree,.but.che
1b440 63 6b 20 69 74 20 2a 2f 00 09 09 09 09 2f 2a 20 63 6f 6c 4e 61 6d 65 73 2c 20 6f 70 74 69 6f 6e ck.it.*/...../*.colNames,.option
1b460 73 20 61 72 65 20 64 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 s.are.deemed.uninteresting.*/...
1b480 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 69 ...return.true;.....if.(walker(i
1b4a0 6e 74 6f 2d 3e 72 65 6c 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 49 6e 74 6f 43 6c 61 nto->rel,.context))......IntoCla
1b4c0 75 73 65 20 2a 69 6e 74 6f 20 3d 20 28 49 6e 74 6f 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 3b use.*into.=.(IntoClause.*).node;
1b4e0 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 49 6e 74 6f 43 6c 61 75 73 65 3a 00 09 09 09 62 72 ....{...case.T_IntoClause:....br
1b500 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 75 73 69 6e 67 20 6c 69 73 74 20 69 73 20 64 eak;....}...../*.using.list.is.d
1b520 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 09 09 09 72 65 74 75 eemed.uninteresting.*/......retu
1b540 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6a 6f 69 6e 2d 3e 61 6c rn.true;.....if.(walker(join->al
1b560 69 61 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b ias,.context))......return.true;
1b580 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6a 6f 69 6e 2d 3e 71 75 61 6c 73 2c 20 63 6f 6e .....if.(walker(join->quals,.con
1b5a0 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 text))......return.true;.....if.
1b5c0 28 77 61 6c 6b 65 72 28 6a 6f 69 6e 2d 3e 72 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 (walker(join->rarg,.context))...
1b5e0 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 6a ...return.true;.....if.(walker(j
1b600 6f 69 6e 2d 3e 6c 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 4a 6f 69 6e 45 78 oin->larg,.context))......JoinEx
1b620 70 72 20 20 20 2a 6a 6f 69 6e 20 3d 20 28 4a 6f 69 6e 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 pr...*join.=.(JoinExpr.*).node;.
1b640 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 4a 6f 69 6e 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 ...{...case.T_JoinExpr:....retur
1b660 6e 20 77 61 6c 6b 65 72 28 28 28 42 6f 6f 6c 65 61 6e 54 65 73 74 20 2a 29 20 6e 6f 64 65 29 2d n.walker(((BooleanTest.*).node)-
1b680 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 65 61 6e >arg,.context);...case.T_Boolean
1b6a0 54 65 73 74 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4e 75 6c 6c 54 65 73 Test:....return.walker(((NullTes
1b6c0 74 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 t.*).node)->arg,.context);...cas
1b6e0 65 20 54 5f 4e 75 6c 6c 54 65 73 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 e.T_NullTest:....break;....}....
1b700 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 78 65 ..return.true;.....if.(walker(xe
1b720 78 70 72 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 77 65 20 61 xpr->args,.context))...../*.we.a
1b740 73 73 75 6d 65 20 77 61 6c 6b 65 72 20 64 6f 65 73 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 ssume.walker.doesn't.care.about.
1b760 61 72 67 5f 6e 61 6d 65 73 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 arg_names.*/......return.true;..
1b780 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 78 65 78 70 72 2d 3e 6e 61 6d 65 64 5f 61 72 67 73 2c ...if.(walker(xexpr->named_args,
1b7a0 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 58 6d 6c 45 78 70 72 20 20 20 20 2a 78 65 78 70 .context))......XmlExpr....*xexp
1b7c0 72 20 3d 20 28 58 6d 6c 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 r.=.(XmlExpr.*).node;....{...cas
1b7e0 65 20 54 5f 58 6d 6c 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 e.T_XmlExpr:....return.walker(((
1b800 4d 69 6e 4d 61 78 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 MinMaxExpr.*).node)->args,.conte
1b820 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 4d 69 6e 4d 61 78 45 78 70 72 3a 00 09 09 09 72 65 74 xt);...case.T_MinMaxExpr:....ret
1b840 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 61 6c 65 73 63 65 45 78 70 72 20 2a 29 20 6e 6f 64 urn.walker(((CoalesceExpr.*).nod
1b860 65 29 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f 61 e)->args,.context);...case.T_Coa
1b880 6c 65 73 63 65 45 78 70 72 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 52 6f lesceExpr:....return.walker(((Ro
1b8a0 77 45 78 70 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 wExpr.*).node)->args,.context);.
1b8c0 09 09 09 2f 2a 20 41 73 73 75 6d 65 20 63 6f 6c 6e 61 6d 65 73 20 69 73 6e 27 74 20 69 6e 74 65 .../*.Assume.colnames.isn't.inte
1b8e0 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 52 6f 77 45 78 70 72 3a 00 09 09 09 resting.*/...case.T_RowExpr:....
1b900 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 break;....}......return.true;...
1b920 09 09 69 66 20 28 77 61 6c 6b 65 72 28 63 61 73 65 65 78 70 72 2d 3e 64 65 66 72 65 73 75 6c 74 ..if.(walker(caseexpr->defresult
1b940 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 7d 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 74 ,.context)).....}.......return.t
1b960 72 75 65 3b 00 09 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 68 65 6e 2d 3e 72 65 73 75 6c rue;......if.(walker(when->resul
1b980 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 t,.context)).......return.true;.
1b9a0 09 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 68 65 6e 2d 3e 65 78 70 72 2c 20 63 6f 6e 74 .....if.(walker(when->expr,.cont
1b9c0 65 78 74 29 29 00 09 09 09 09 09 41 73 73 65 72 74 28 49 73 41 28 77 68 65 6e 2c 20 43 61 73 65 ext))......Assert(IsA(when,.Case
1b9e0 57 68 65 6e 29 29 3b 00 00 09 09 09 09 09 43 61 73 65 57 68 65 6e 20 20 20 2a 77 68 65 6e 20 3d When));.......CaseWhen...*when.=
1ba00 20 28 43 61 73 65 57 68 65 6e 20 2a 29 20 6c 66 69 72 73 74 28 74 65 6d 70 29 3b 00 09 09 09 09 .(CaseWhen.*).lfirst(temp);.....
1ba20 7b 00 09 09 09 09 66 6f 72 65 61 63 68 28 74 65 6d 70 2c 20 63 61 73 65 65 78 70 72 2d 3e 61 72 {.....foreach(temp,.caseexpr->ar
1ba40 67 73 29 00 09 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 77 61 6c 6b 65 72 20 64 6f 65 73 gs)...../*.we.assume.walker.does
1ba60 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 43 61 73 65 57 68 65 6e 73 2c 20 65 69 74 68 65 72 n't.care.about.CaseWhens,.either
1ba80 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 .*/......return.true;.....if.(wa
1baa0 6c 6b 65 72 28 63 61 73 65 65 78 70 72 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 lker(caseexpr->arg,.context))...
1bac0 09 09 09 43 61 73 65 45 78 70 72 20 20 20 2a 63 61 73 65 65 78 70 72 20 3d 20 28 43 61 73 65 45 ...CaseExpr...*caseexpr.=.(CaseE
1bae0 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 61 73 65 45 xpr.*).node;....{...case.T_CaseE
1bb00 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 xpr:....break;....}......return.
1bb20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 75 62 6c 69 6e 6b 2d 3e 73 75 true;.....if.(walker(sublink->su
1bb40 62 73 65 6c 65 63 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f 2a 20 77 65 20 61 73 73 bselect,.context))...../*.we.ass
1bb60 75 6d 65 20 74 68 65 20 6f 70 65 72 4e 61 6d 65 20 69 73 20 6e 6f 74 20 69 6e 74 65 72 65 73 74 ume.the.operName.is.not.interest
1bb80 69 6e 67 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 ing.*/......return.true;.....if.
1bba0 28 77 61 6c 6b 65 72 28 73 75 62 6c 69 6e 6b 2d 3e 74 65 73 74 65 78 70 72 2c 20 63 6f 6e 74 65 (walker(sublink->testexpr,.conte
1bbc0 78 74 29 29 00 00 09 09 09 09 53 75 62 4c 69 6e 6b 20 20 20 20 2a 73 75 62 6c 69 6e 6b 20 3d 20 xt))......SubLink....*sublink.=.
1bbe0 28 53 75 62 4c 69 6e 6b 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f (SubLink.*).node;....{...case.T_
1bc00 53 75 62 4c 69 6e 6b 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 47 72 6f 75 SubLink:....return.walker(((Grou
1bc20 70 69 6e 67 46 75 6e 63 20 2a 29 20 6e 6f 64 65 29 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 pingFunc.*).node)->args,.context
1bc40 29 3b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 6e 67 46 75 6e 63 3a 00 09 09 09 72 65 74 );...case.T_GroupingFunc:....ret
1bc60 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 52 61 6e 67 65 56 61 72 20 2a 29 20 6e 6f 64 65 29 2d 3e urn.walker(((RangeVar.*).node)->
1bc80 61 6c 69 61 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 56 alias,.context);...case.T_RangeV
1bca0 61 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 74 68 ar:....break;..../*.we.assume.th
1bcc0 65 20 63 6f 6c 6e 61 6d 65 73 20 6c 69 73 74 20 69 73 6e 27 74 20 69 6e 74 65 72 65 73 74 69 6e e.colnames.list.isn't.interestin
1bce0 67 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 41 6c 69 61 73 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 g.*/...case.T_Alias:....break;..
1bd00 09 09 2f 2a 20 70 72 69 6d 69 74 69 76 65 20 6e 6f 64 65 20 74 79 70 65 73 20 77 69 74 68 20 6e ../*.primitive.node.types.with.n
1bd20 6f 20 73 75 62 6e 6f 64 65 73 20 2a 2f 00 09 09 63 61 73 65 20 54 5f 41 5f 53 74 61 72 3a 00 09 o.subnodes.*/...case.T_A_Star:..
1bd40 09 63 61 73 65 20 54 5f 41 5f 43 6f 6e 73 74 3a 00 09 09 63 61 73 65 20 54 5f 50 61 72 61 6d 52 .case.T_A_Const:...case.T_ParamR
1bd60 65 66 3a 00 09 09 63 61 73 65 20 54 5f 4e 75 6c 6c 3a 00 09 09 63 61 73 65 20 54 5f 42 69 74 53 ef:...case.T_Null:...case.T_BitS
1bd80 74 72 69 6e 67 3a 00 09 09 63 61 73 65 20 54 5f 53 74 72 69 6e 67 3a 00 09 09 63 61 73 65 20 54 tring:...case.T_String:...case.T
1bda0 5f 46 6c 6f 61 74 3a 00 09 09 63 61 73 65 20 54 5f 49 6e 74 65 67 65 72 3a 00 09 09 63 61 73 65 _Float:...case.T_Integer:...case
1bdc0 20 54 5f 43 75 72 72 65 6e 74 4f 66 45 78 70 72 3a 00 09 09 63 61 73 65 20 54 5f 53 65 74 54 6f .T_CurrentOfExpr:...case.T_SetTo
1bde0 44 65 66 61 75 6c 74 3a 00 09 7b 00 09 73 77 69 74 63 68 20 28 6e 6f 64 65 54 61 67 28 6e 6f 64 Default:..{..switch.(nodeTag(nod
1be00 65 29 29 00 00 09 63 68 65 63 6b 5f 73 74 61 63 6b 5f 64 65 70 74 68 28 29 3b 00 09 2f 2a 20 47 e))...check_stack_depth();../*.G
1be20 75 61 72 64 20 61 67 61 69 6e 73 74 20 73 74 61 63 6b 20 6f 76 65 72 66 6c 6f 77 20 64 75 65 20 uard.against.stack.overflow.due.
1be40 74 6f 20 6f 76 65 72 6c 79 20 63 6f 6d 70 6c 65 78 20 65 78 70 72 65 73 73 69 6f 6e 73 20 2a 2f to.overly.complex.expressions.*/
1be60 00 00 09 09 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 00 09 69 66 20 28 6e 6f 64 65 20 3d 3d 20 4e ....return.false;..if.(node.==.N
1be80 55 4c 4c 29 00 09 20 2a 2f 00 09 20 2a 20 72 65 63 75 72 73 65 20 69 6e 74 6f 20 61 6e 79 20 73 ULL)...*/...*.recurse.into.any.s
1bea0 75 62 2d 6e 6f 64 65 73 20 69 74 20 68 61 73 2e 00 09 20 2a 20 54 68 65 20 77 61 6c 6b 65 72 20 ub-nodes.it.has....*.The.walker.
1bec0 68 61 73 20 61 6c 72 65 61 64 79 20 76 69 73 69 74 65 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 has.already.visited.the.current.
1bee0 6e 6f 64 65 2c 20 61 6e 64 20 73 6f 20 77 65 20 6e 65 65 64 20 6f 6e 6c 79 00 09 2f 2a 00 00 09 node,.and.so.we.need.only../*...
1bf00 4c 69 73 74 43 65 6c 6c 20 20 20 2a 74 65 6d 70 3b 00 7b 00 09 09 09 09 09 09 20 20 20 76 6f 69 ListCell...*temp;.{..........voi
1bf20 64 20 2a 63 6f 6e 74 65 78 74 29 00 09 09 09 09 09 09 20 20 20 62 6f 6f 6c 20 28 2a 77 61 6c 6b d.*context)..........bool.(*walk
1bf40 65 72 29 20 28 29 2c 00 72 61 77 5f 65 78 70 72 65 73 73 69 6f 6e 5f 74 72 65 65 5f 77 61 6c 6b er).(),.raw_expression_tree_walk
1bf60 65 72 28 4e 6f 64 65 20 2a 6e 6f 64 65 2c 00 62 6f 6f 6c 00 20 2a 2f 00 20 2a 20 74 68 61 74 20 er(Node.*node,.bool..*/..*.that.
1bf80 63 6f 75 6c 64 20 61 70 70 65 61 72 20 75 6e 64 65 72 20 69 74 2c 20 62 75 74 20 6e 6f 74 20 6f could.appear.under.it,.but.not.o
1bfa0 74 68 65 72 20 73 74 61 74 65 6d 65 6e 74 20 74 79 70 65 73 2e 00 20 2a 20 43 75 72 72 65 6e 74 ther.statement.types...*.Current
1bfc0 6c 79 2c 20 74 68 65 20 6e 6f 64 65 20 74 79 70 65 20 63 6f 76 65 72 61 67 65 20 65 78 74 65 6e ly,.the.node.type.coverage.exten
1bfe0 64 73 20 74 6f 20 53 65 6c 65 63 74 53 74 6d 74 20 61 6e 64 20 65 76 65 72 79 74 68 69 6e 67 00 ds.to.SelectStmt.and.everything.
1c000 61 64 00 00 13 00 00 00 63 02 00 00 00 10 00 00 8d 00 00 00 00 00 00 00 ee 0f 00 00 bd 0f 00 00 ad......c.......................
1c020 ab 0f 00 00 7d 0f 00 00 6b 0f 00 00 40 0f 00 00 2e 0f 00 00 29 0f 00 00 1f 0f 00 00 0a 0f 00 00 ....}...k...@.......)...........
1c040 05 0f 00 00 d9 0e 00 00 d8 0e 00 00 af 0e 00 00 9d 0e 00 00 71 0e 00 00 5f 0e 00 00 33 0e 00 00 ....................q..._...3...
1c060 21 0e 00 00 f3 0d 00 00 e1 0d 00 00 b6 0d 00 00 a4 0d 00 00 9f 0d 00 00 95 0d 00 00 80 0d 00 00 !...............................
1c080 7b 0d 00 00 4f 0d 00 00 4e 0d 00 00 25 0d 00 00 13 0d 00 00 e8 0c 00 00 d6 0c 00 00 aa 0c 00 00 {...O...N...%...................
1c0a0 98 0c 00 00 6d 0c 00 00 5b 0c 00 00 2d 0c 00 00 1b 0c 00 00 f0 0b 00 00 de 0b 00 00 d9 0b 00 00 ....m...[...-...................
1c0c0 cf 0b 00 00 ba 0b 00 00 b5 0b 00 00 89 0b 00 00 88 0b 00 00 59 0b 00 00 47 0b 00 00 1c 0b 00 00 ....................Y...G.......
1c0e0 0a 0b 00 00 df 0a 00 00 cd 0a 00 00 a2 0a 00 00 90 0a 00 00 64 0a 00 00 52 0a 00 00 26 0a 00 00 ....................d...R...&...
1c100 14 0a 00 00 e7 09 00 00 d5 09 00 00 a8 09 00 00 96 09 00 00 6a 09 00 00 58 09 00 00 2d 09 00 00 ....................j...X...-...
1c120 1b 09 00 00 ef 08 00 00 dd 08 00 00 b2 08 00 00 a0 08 00 00 72 08 00 00 60 08 00 00 35 08 00 00 ....................r...`...5...
1c140 23 08 00 00 fe 07 00 00 ec 07 00 00 c7 07 00 00 b5 07 00 00 b0 07 00 00 a6 07 00 00 95 07 00 00 #...............................
1c160 90 07 00 00 69 07 00 00 68 07 00 00 42 07 00 00 30 07 00 00 0a 07 00 00 f8 06 00 00 c8 06 00 00 ....i...h...B...0...............
1c180 c3 06 00 00 b9 06 00 00 a6 06 00 00 a1 06 00 00 77 06 00 00 76 06 00 00 51 06 00 00 3f 06 00 00 ................w...v...Q...?...
1c1a0 3a 06 00 00 30 06 00 00 1c 06 00 00 e2 05 00 00 d8 05 00 00 c5 05 00 00 c0 05 00 00 95 05 00 00 :...0...........................
1c1c0 94 05 00 00 6e 05 00 00 5c 05 00 00 31 05 00 00 1f 05 00 00 f3 04 00 00 e1 04 00 00 bb 04 00 00 ....n...\...1...................
1c1e0 a9 04 00 00 79 04 00 00 74 04 00 00 6a 04 00 00 53 04 00 00 1a 04 00 00 06 04 00 00 01 04 00 00 ....y...t...j...S...............
1c200 d3 03 00 00 d2 03 00 00 aa 03 00 00 98 03 00 00 70 03 00 00 5e 03 00 00 59 03 00 00 4f 03 00 00 ................p...^...Y...O...
1c220 37 03 00 00 32 03 00 00 ff 02 00 00 fe 02 00 00 d9 02 00 00 c7 02 00 00 9a 02 00 00 88 02 00 00 7...2...........................
1c240 83 02 00 00 79 02 00 00 63 02 00 00 62 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....y...c...b...................
1c260 00 00 00 09 09 63 61 73 65 20 54 5f 41 5f 41 72 72 61 79 45 78 70 72 3a 00 09 09 09 62 72 65 61 .....case.T_A_ArrayExpr:....brea
1c280 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 k;....}......return.true;.....if
1c2a0 20 28 77 61 6c 6b 65 72 28 69 6e 64 69 72 2d 3e 69 6e 64 69 72 65 63 74 69 6f 6e 2c 20 63 6f 6e .(walker(indir->indirection,.con
1c2c0 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 text))......return.true;.....if.
1c2e0 28 77 61 6c 6b 65 72 28 69 6e 64 69 72 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 (walker(indir->arg,.context))...
1c300 09 09 09 41 5f 49 6e 64 69 72 65 63 74 69 6f 6e 20 2a 69 6e 64 69 72 20 3d 20 28 41 5f 49 6e 64 ...A_Indirection.*indir.=.(A_Ind
1c320 69 72 65 63 74 69 6f 6e 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f irection.*).node;....{...case.T_
1c340 41 5f 49 6e 64 69 72 65 63 74 69 6f 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 A_Indirection:....break;....}...
1c360 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 69 ...return.true;.....if.(walker(i
1c380 6e 64 69 63 65 73 2d 3e 75 69 64 78 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 ndices->uidx,.context))......ret
1c3a0 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 69 6e 64 69 63 65 73 urn.true;.....if.(walker(indices
1c3c0 2d 3e 6c 69 64 78 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 41 5f 49 6e 64 69 63 65 73 ->lidx,.context))......A_Indices
1c3e0 20 20 2a 69 6e 64 69 63 65 73 20 3d 20 28 41 5f 49 6e 64 69 63 65 73 20 2a 29 20 6e 6f 64 65 3b ..*indices.=.(A_Indices.*).node;
1c400 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 5f 49 6e 64 69 63 65 73 3a 00 09 09 09 72 65 74 ....{...case.T_A_Indices:....ret
1c420 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4e 61 6d 65 64 41 72 67 45 78 70 72 20 2a 29 20 6e 6f 64 urn.walker(((NamedArgExpr.*).nod
1c440 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 4e 61 6d 65 e)->arg,.context);...case.T_Name
1c460 64 41 72 67 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 dArgExpr:....break;....}...../*.
1c480 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 64 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 function.name.is.deemed.unintere
1c4a0 73 74 69 6e 67 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 sting.*/......return.true;.....i
1c4c0 66 20 28 77 61 6c 6b 65 72 28 66 63 61 6c 6c 2d 3e 6f 76 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 f.(walker(fcall->over,.context))
1c4e0 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1c500 72 28 66 63 61 6c 6c 2d 3e 61 67 67 5f 66 69 6c 74 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 r(fcall->agg_filter,.context))..
1c520 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1c540 66 63 61 6c 6c 2d 3e 61 67 67 5f 6f 72 64 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 fcall->agg_order,.context)).....
1c560 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 66 63 61 .return.true;.....if.(walker(fca
1c580 6c 6c 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 46 75 6e 63 43 61 6c ll->args,.context))......FuncCal
1c5a0 6c 20 20 20 2a 66 63 61 6c 6c 20 3d 20 28 46 75 6e 63 43 61 6c 6c 20 2a 29 20 6e 6f 64 65 3b 00 l...*fcall.=.(FuncCall.*).node;.
1c5c0 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 46 75 6e 63 43 61 6c 6c 3a 00 09 09 09 62 72 65 61 6b ...{...case.T_FuncCall:....break
1c5e0 3b 00 09 09 09 2f 2a 20 77 65 20 61 73 73 75 6d 65 20 74 68 65 20 66 69 65 6c 64 73 20 63 6f 6e ;..../*.we.assume.the.fields.con
1c600 74 61 69 6e 20 6e 6f 74 68 69 6e 67 20 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 63 61 tain.nothing.interesting.*/...ca
1c620 73 65 20 54 5f 43 6f 6c 75 6d 6e 52 65 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 se.T_ColumnRef:....break;....}..
1c640 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1c660 65 78 70 72 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 42 6f 6f 6c 45 expr->args,.context))......BoolE
1c680 78 70 72 20 20 20 2a 65 78 70 72 20 3d 20 28 42 6f 6f 6c 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b xpr...*expr.=.(BoolExpr.*).node;
1c6a0 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 42 6f 6f 6c 45 78 70 72 3a 00 09 09 09 62 72 65 61 ....{...case.T_BoolExpr:....brea
1c6c0 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 6f 70 65 72 61 74 6f 72 20 6e 61 6d 65 20 69 73 20 k;....}...../*.operator.name.is.
1c6e0 64 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e 67 20 2a 2f 00 09 09 09 09 09 72 65 74 deemed.uninteresting.*/......ret
1c700 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 65 78 70 72 2d 3e 72 urn.true;.....if.(walker(expr->r
1c720 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 expr,.context))......return.true
1c740 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 65 78 70 72 2d 3e 6c 65 78 70 72 2c 20 63 6f ;.....if.(walker(expr->lexpr,.co
1c760 6e 74 65 78 74 29 29 00 00 09 09 09 09 41 5f 45 78 70 72 09 20 20 20 2a 65 78 70 72 20 3d 20 28 ntext))......A_Expr....*expr.=.(
1c780 41 5f 45 78 70 72 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 41 5f A_Expr.*).node;....{...case.T_A_
1c7a0 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e Expr:....break;....}......return
1c7c0 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 72 61 72 67 .true;.....if.(walker(stmt->rarg
1c7e0 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 ,.context))......return.true;...
1c800 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 6c 61 72 67 2c 20 63 6f 6e 74 65 78 74 ..if.(walker(stmt->larg,.context
1c820 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c ))......return.true;.....if.(wal
1c840 6b 65 72 28 73 74 6d 74 2d 3e 77 69 74 68 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 ker(stmt->withClause,.context)).
1c860 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
1c880 28 73 74 6d 74 2d 3e 6c 6f 63 6b 69 6e 67 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 (stmt->lockingClause,.context)).
1c8a0 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
1c8c0 28 73 74 6d 74 2d 3e 6c 69 6d 69 74 43 6f 75 6e 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 (stmt->limitCount,.context))....
1c8e0 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 ..return.true;.....if.(walker(st
1c900 6d 74 2d 3e 6c 69 6d 69 74 4f 66 66 73 65 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 mt->limitOffset,.context))......
1c920 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 return.true;.....if.(walker(stmt
1c940 2d 3e 73 6f 72 74 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 ->sortClause,.context))......ret
1c960 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 76 urn.true;.....if.(walker(stmt->v
1c980 61 6c 75 65 73 4c 69 73 74 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 aluesLists,.context))......retur
1c9a0 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 69 6e n.true;.....if.(walker(stmt->win
1c9c0 64 6f 77 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e dowClause,.context))......return
1c9e0 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 68 61 76 69 .true;.....if.(walker(stmt->havi
1ca00 6e 67 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 ngClause,.context))......return.
1ca20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 67 72 6f 75 70 true;.....if.(walker(stmt->group
1ca40 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 Clause,.context))......return.tr
1ca60 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 68 65 72 65 43 6c ue;.....if.(walker(stmt->whereCl
1ca80 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 ause,.context))......return.true
1caa0 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 66 72 6f 6d 43 6c 61 75 73 ;.....if.(walker(stmt->fromClaus
1cac0 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 e,.context))......return.true;..
1cae0 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 74 61 72 67 65 74 4c 69 73 74 2c 20 ...if.(walker(stmt->targetList,.
1cb00 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 context))......return.true;.....
1cb20 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 69 6e 74 6f 43 6c 61 75 73 65 2c 20 63 6f 6e if.(walker(stmt->intoClause,.con
1cb40 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 text))......return.true;.....if.
1cb60 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 64 69 73 74 69 6e 63 74 43 6c 61 75 73 65 2c 20 63 6f (walker(stmt->distinctClause,.co
1cb80 6e 74 65 78 74 29 29 00 00 09 09 09 09 53 65 6c 65 63 74 53 74 6d 74 20 2a 73 74 6d 74 20 3d 20 ntext))......SelectStmt.*stmt.=.
1cba0 28 53 65 6c 65 63 74 53 74 6d 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 (SelectStmt.*).node;....{...case
1cbc0 20 54 5f 53 65 6c 65 63 74 53 74 6d 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 .T_SelectStmt:....break;....}...
1cbe0 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 ...return.true;.....if.(walker(s
1cc00 74 6d 74 2d 3e 77 69 74 68 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 tmt->withClause,.context))......
1cc20 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 return.true;.....if.(walker(stmt
1cc40 2d 3e 72 65 74 75 72 6e 69 6e 67 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 ->returningList,.context))......
1cc60 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 return.true;.....if.(walker(stmt
1cc80 2d 3e 66 72 6f 6d 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 ->fromClause,.context))......ret
1cca0 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 urn.true;.....if.(walker(stmt->w
1ccc0 68 65 72 65 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 hereClause,.context))......retur
1cce0 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 74 61 72 n.true;.....if.(walker(stmt->tar
1cd00 67 65 74 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 getList,.context))......return.t
1cd20 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 72 65 6c 61 74 69 rue;.....if.(walker(stmt->relati
1cd40 6f 6e 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 55 70 64 61 74 65 53 74 6d 74 20 2a 73 on,.context))......UpdateStmt.*s
1cd60 74 6d 74 20 3d 20 28 55 70 64 61 74 65 53 74 6d 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 tmt.=.(UpdateStmt.*).node;....{.
1cd80 09 09 63 61 73 65 20 54 5f 55 70 64 61 74 65 53 74 6d 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 ..case.T_UpdateStmt:....break;..
1cda0 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 ..}......return.true;.....if.(wa
1cdc0 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 69 74 68 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 lker(stmt->withClause,.context))
1cde0 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1ce00 72 28 73 74 6d 74 2d 3e 72 65 74 75 72 6e 69 6e 67 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 r(stmt->returningList,.context))
1ce20 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1ce40 72 28 73 74 6d 74 2d 3e 77 68 65 72 65 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 r(stmt->whereClause,.context))..
1ce60 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1ce80 73 74 6d 74 2d 3e 75 73 69 6e 67 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 stmt->usingClause,.context))....
1cea0 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 ..return.true;.....if.(walker(st
1cec0 6d 74 2d 3e 72 65 6c 61 74 69 6f 6e 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 44 65 6c mt->relation,.context))......Del
1cee0 65 74 65 53 74 6d 74 20 2a 73 74 6d 74 20 3d 20 28 44 65 6c 65 74 65 53 74 6d 74 20 2a 29 20 6e eteStmt.*stmt.=.(DeleteStmt.*).n
1cf00 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 44 65 6c 65 74 65 53 74 6d 74 3a 00 09 ode;....{...case.T_DeleteStmt:..
1cf20 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 ..break;....}......return.true;.
1cf40 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 69 74 68 43 6c 61 75 73 65 2c ....if.(walker(stmt->withClause,
1cf60 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 .context))......return.true;....
1cf80 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 72 65 74 75 72 6e 69 6e 67 4c 69 73 74 2c .if.(walker(stmt->returningList,
1cfa0 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 .context))......return.true;....
1cfc0 09 69 66 20 28 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 6f 6e 43 6f 6e 66 6c 69 63 74 43 6c 61 75 .if.(walker(stmt->onConflictClau
1cfe0 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 se,.context))......return.true;.
1d000 61 64 00 00 03 00 00 00 5f 02 00 00 00 10 00 00 90 00 00 00 00 00 00 00 c3 0f 00 00 af 0f 00 00 ad......_.......................
1d020 aa 0f 00 00 81 0f 00 00 80 0f 00 00 56 0f 00 00 44 0f 00 00 22 0f 00 00 10 0f 00 00 0b 0f 00 00 ............V...D..."...........
1d040 01 0f 00 00 e8 0e 00 00 aa 0e 00 00 97 0e 00 00 92 0e 00 00 6a 0e 00 00 69 0e 00 00 47 0e 00 00 ....................j...i...G...
1d060 35 0e 00 00 0e 0e 00 00 fc 0d 00 00 f7 0d 00 00 ed 0d 00 00 d5 0d 00 00 9b 0d 00 00 8a 0d 00 00 5...............................
1d080 56 0d 00 00 42 0d 00 00 3d 0d 00 00 14 0d 00 00 13 0d 00 00 e5 0c 00 00 d3 0c 00 00 a9 0c 00 00 V...B...=.......................
1d0a0 97 0c 00 00 6d 0c 00 00 5b 0c 00 00 33 0c 00 00 21 0c 00 00 1c 0c 00 00 12 0c 00 00 f9 0b 00 00 ....m...[...3...!...............
1d0c0 f4 0b 00 00 c2 0b 00 00 c1 0b 00 00 9a 0b 00 00 88 0b 00 00 64 0b 00 00 52 0b 00 00 4d 0b 00 00 ....................d...R...M...
1d0e0 43 0b 00 00 2b 0b 00 00 26 0b 00 00 f6 0a 00 00 f5 0a 00 00 cd 0a 00 00 bb 0a 00 00 97 0a 00 00 C...+...&.......................
1d100 85 0a 00 00 5c 0a 00 00 4a 0a 00 00 45 0a 00 00 3b 0a 00 00 20 0a 00 00 1b 0a 00 00 e4 09 00 00 ....\...J...E...;...............
1d120 e3 09 00 00 bb 09 00 00 a9 09 00 00 7b 09 00 00 57 09 00 00 45 09 00 00 1b 09 00 00 09 09 00 00 ............{...W...E...........
1d140 04 09 00 00 fa 08 00 00 e7 08 00 00 e2 08 00 00 ba 08 00 00 b9 08 00 00 93 08 00 00 81 08 00 00 ................................
1d160 57 08 00 00 45 08 00 00 12 08 00 00 0d 08 00 00 03 08 00 00 ef 07 00 00 ea 07 00 00 bd 07 00 00 W...E...........................
1d180 bc 07 00 00 91 07 00 00 7f 07 00 00 51 07 00 00 3f 07 00 00 12 07 00 00 00 07 00 00 d5 06 00 00 ............Q...?...............
1d1a0 d0 06 00 00 c6 06 00 00 b0 06 00 00 74 06 00 00 5c 06 00 00 1b 06 00 00 04 06 00 00 ff 05 00 00 ............t...\...............
1d1c0 d1 05 00 00 d0 05 00 00 ad 05 00 00 9b 05 00 00 74 05 00 00 62 05 00 00 5d 05 00 00 53 05 00 00 ................t...b...]...S...
1d1e0 3e 05 00 00 06 05 00 00 f0 04 00 00 eb 04 00 00 bd 04 00 00 bc 04 00 00 91 04 00 00 7f 04 00 00 >...............................
1d200 53 04 00 00 41 04 00 00 3c 04 00 00 32 04 00 00 17 04 00 00 12 04 00 00 da 03 00 00 d9 03 00 00 S...A...<...2...................
1d220 b3 03 00 00 a1 03 00 00 76 03 00 00 64 03 00 00 38 03 00 00 26 03 00 00 21 03 00 00 17 03 00 00 ........v...d...8...&...!.......
1d240 fd 02 00 00 bc 02 00 00 b1 02 00 00 84 02 00 00 69 02 00 00 5f 02 00 00 00 00 00 00 00 00 00 09 ................i..._...........
1d260 09 09 62 72 65 61 6b 3b 00 09 09 09 09 20 28 69 6e 74 29 20 6e 6f 64 65 54 61 67 28 6e 6f 64 65 ..break;......(int).nodeTag(node
1d280 29 29 3b 00 09 09 09 65 6c 6f 67 28 45 52 52 4f 52 2c 20 22 75 6e 72 65 63 6f 67 6e 69 7a 65 64 ));....elog(ERROR,."unrecognized
1d2a0 20 6e 6f 64 65 20 74 79 70 65 3a 20 25 64 22 2c 00 09 09 64 65 66 61 75 6c 74 3a 00 09 09 09 72 .node.type:.%d",...default:....r
1d2c0 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 20 2a eturn.walker(((CommonTableExpr.*
1d2e0 29 20 6e 6f 64 65 29 2d 3e 63 74 65 71 75 65 72 79 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 ).node)->ctequery,.context);...c
1d300 61 73 65 20 54 5f 43 6f 6d 6d 6f 6e 54 61 62 6c 65 45 78 70 72 3a 00 09 09 09 62 72 65 61 6b 3b ase.T_CommonTableExpr:....break;
1d320 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 ....}......return.true;.....if.(
1d340 77 61 6c 6b 65 72 28 73 74 6d 74 2d 3e 77 68 65 72 65 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 walker(stmt->whereClause,.contex
1d360 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 t))......return.true;.....if.(wa
1d380 6c 6b 65 72 28 73 74 6d 74 2d 3e 74 61 72 67 65 74 4c 69 73 74 2c 20 63 6f 6e 74 65 78 74 29 29 lker(stmt->targetList,.context))
1d3a0 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1d3c0 72 28 73 74 6d 74 2d 3e 69 6e 66 65 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 4f 6e r(stmt->infer,.context))......On
1d3e0 43 6f 6e 66 6c 69 63 74 43 6c 61 75 73 65 20 2a 73 74 6d 74 20 3d 20 28 4f 6e 43 6f 6e 66 6c 69 ConflictClause.*stmt.=.(OnConfli
1d400 63 74 43 6c 61 75 73 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f ctClause.*).node;....{...case.T_
1d420 4f 6e 43 6f 6e 66 6c 69 63 74 43 6c 61 75 73 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d OnConflictClause:....break;....}
1d440 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1d460 72 28 73 74 6d 74 2d 3e 77 68 65 72 65 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 r(stmt->whereClause,.context))..
1d480 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1d4a0 73 74 6d 74 2d 3e 69 6e 64 65 78 45 6c 65 6d 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 stmt->indexElems,.context)).....
1d4c0 09 49 6e 66 65 72 43 6c 61 75 73 65 20 2a 73 74 6d 74 20 3d 20 28 49 6e 66 65 72 43 6c 61 75 73 .InferClause.*stmt.=.(InferClaus
1d4e0 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 49 6e 66 65 72 43 6c e.*).node;....{...case.T_InferCl
1d500 61 75 73 65 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 57 69 74 68 43 6c 61 ause:....return.walker(((WithCla
1d520 75 73 65 20 2a 29 20 6e 6f 64 65 29 2d 3e 63 74 65 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 use.*).node)->ctes,.context);...
1d540 63 61 73 65 20 54 5f 57 69 74 68 43 6c 61 75 73 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 case.T_WithClause:....break;....
1d560 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b }......return.true;.....if.(walk
1d580 65 72 28 78 73 2d 3e 74 79 70 65 4e 61 6d 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 er(xs->typeName,.context))......
1d5a0 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 78 73 2d 3e return.true;.....if.(walker(xs->
1d5c0 65 78 70 72 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 58 6d 6c 53 65 72 69 61 6c 69 7a expr,.context))......XmlSerializ
1d5e0 65 20 2a 78 73 20 3d 20 28 58 6d 6c 53 65 72 69 61 6c 69 7a 65 20 2a 29 20 6e 6f 64 65 3b 00 09 e.*xs.=.(XmlSerialize.*).node;..
1d600 09 09 7b 00 09 09 63 61 73 65 20 54 5f 58 6d 6c 53 65 72 69 61 6c 69 7a 65 3a 00 09 09 09 72 65 ..{...case.T_XmlSerialize:....re
1d620 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4c 6f 63 6b 69 6e 67 43 6c 61 75 73 65 20 2a 29 20 6e turn.walker(((LockingClause.*).n
1d640 6f 64 65 29 2d 3e 6c 6f 63 6b 65 64 52 65 6c 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 ode)->lockedRels,.context);...ca
1d660 73 65 20 54 5f 4c 6f 63 6b 69 6e 67 43 6c 61 75 73 65 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 se.T_LockingClause:....return.wa
1d680 6c 6b 65 72 28 28 28 47 72 6f 75 70 69 6e 67 53 65 74 20 2a 29 20 6e 6f 64 65 29 2d 3e 63 6f 6e lker(((GroupingSet.*).node)->con
1d6a0 74 65 6e 74 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 47 72 6f 75 70 69 6e tent,.context);...case.T_Groupin
1d6c0 67 53 65 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 66 6f 72 20 gSet:....break;....}...../*.for.
1d6e0 6e 6f 77 2c 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 72 65 20 69 67 6e 6f 72 65 64 20 2a 2f 00 now,.constraints.are.ignored.*/.
1d700 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 .....return.true;.....if.(walker
1d720 28 63 6f 6c 64 65 66 2d 3e 63 6f 6c 6c 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 (coldef->collClause,.context))..
1d740 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1d760 63 6f 6c 64 65 66 2d 3e 72 61 77 5f 64 65 66 61 75 6c 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 coldef->raw_default,.context))..
1d780 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 ....return.true;.....if.(walker(
1d7a0 63 6f 6c 64 65 66 2d 3e 74 79 70 65 4e 61 6d 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 coldef->typeName,.context)).....
1d7c0 09 43 6f 6c 75 6d 6e 44 65 66 20 20 2a 63 6f 6c 64 65 66 20 3d 20 28 43 6f 6c 75 6d 6e 44 65 66 .ColumnDef..*coldef.=.(ColumnDef
1d7e0 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 43 6f 6c 75 6d 6e 44 65 .*).node;....{...case.T_ColumnDe
1d800 66 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 2f 2a 20 74 79 70 65 20 6e 61 f:....break;....}...../*.type.na
1d820 6d 65 20 69 74 73 65 6c 66 20 69 73 20 64 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 73 74 69 6e me.itself.is.deemed.uninterestin
1d840 67 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 g.*/......return.true;.....if.(w
1d860 61 6c 6b 65 72 28 74 6e 2d 3e 61 72 72 61 79 42 6f 75 6e 64 73 2c 20 63 6f 6e 74 65 78 74 29 29 alker(tn->arrayBounds,.context))
1d880 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1d8a0 72 28 74 6e 2d 3e 74 79 70 6d 6f 64 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 54 79 r(tn->typmods,.context))......Ty
1d8c0 70 65 4e 61 6d 65 20 20 20 2a 74 6e 20 3d 20 28 54 79 70 65 4e 61 6d 65 20 2a 29 20 6e 6f 64 65 peName...*tn.=.(TypeName.*).node
1d8e0 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 54 79 70 65 4e 61 6d 65 3a 00 09 09 09 62 72 65 ;....{...case.T_TypeName:....bre
1d900 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 ak;....}......return.true;.....i
1d920 66 20 28 77 61 6c 6b 65 72 28 72 74 73 2d 3e 72 65 70 65 61 74 61 62 6c 65 2c 20 63 6f 6e 74 65 f.(walker(rts->repeatable,.conte
1d940 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 xt))......return.true;.....if.(w
1d960 61 6c 6b 65 72 28 72 74 73 2d 3e 61 72 67 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 2f alker(rts->args,.context))...../
1d980 2a 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 73 20 64 65 65 6d 65 64 20 75 6e 69 6e 74 65 72 65 *.method.name.is.deemed.unintere
1d9a0 73 74 69 6e 67 20 2a 2f 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 sting.*/......return.true;.....i
1d9c0 66 20 28 77 61 6c 6b 65 72 28 72 74 73 2d 3e 72 65 6c 61 74 69 6f 6e 2c 20 63 6f 6e 74 65 78 74 f.(walker(rts->relation,.context
1d9e0 29 29 00 00 09 09 09 09 52 61 6e 67 65 54 61 62 6c 65 53 61 6d 70 6c 65 20 2a 72 74 73 20 3d 20 ))......RangeTableSample.*rts.=.
1da00 28 52 61 6e 67 65 54 61 62 6c 65 53 61 6d 70 6c 65 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 (RangeTableSample.*).node;....{.
1da20 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 54 61 62 6c 65 53 61 6d 70 6c 65 3a 00 09 09 09 62 72 ..case.T_RangeTableSample:....br
1da40 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 eak;....}......return.true;.....
1da60 69 66 20 28 77 61 6c 6b 65 72 28 72 66 2d 3e 63 6f 6c 64 65 66 6c 69 73 74 2c 20 63 6f 6e 74 65 if.(walker(rf->coldeflist,.conte
1da80 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 xt))......return.true;.....if.(w
1daa0 61 6c 6b 65 72 28 72 66 2d 3e 61 6c 69 61 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 alker(rf->alias,.context))......
1dac0 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 66 2d 3e return.true;.....if.(walker(rf->
1dae0 66 75 6e 63 74 69 6f 6e 73 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 52 61 6e 67 65 46 functions,.context))......RangeF
1db00 75 6e 63 74 69 6f 6e 20 2a 72 66 20 3d 20 28 52 61 6e 67 65 46 75 6e 63 74 69 6f 6e 20 2a 29 20 unction.*rf.=.(RangeFunction.*).
1db20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 61 6e 67 65 46 75 6e 63 74 69 6f node;....{...case.T_RangeFunctio
1db40 6e 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 n:....break;....}......return.tr
1db60 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 73 2d 3e 61 6c 69 61 73 2c 20 63 6f ue;.....if.(walker(rs->alias,.co
1db80 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 ntext))......return.true;.....if
1dba0 20 28 77 61 6c 6b 65 72 28 72 73 2d 3e 73 75 62 71 75 65 72 79 2c 20 63 6f 6e 74 65 78 74 29 29 .(walker(rs->subquery,.context))
1dbc0 00 00 09 09 09 09 52 61 6e 67 65 53 75 62 73 65 6c 65 63 74 20 2a 72 73 20 3d 20 28 52 61 6e 67 ......RangeSubselect.*rs.=.(Rang
1dbe0 65 53 75 62 73 65 6c 65 63 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 eSubselect.*).node;....{...case.
1dc00 54 5f 52 61 6e 67 65 53 75 62 73 65 6c 65 63 74 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d T_RangeSubselect:....break;....}
1dc20 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 ......return.true;.....if.(walke
1dc40 72 28 77 64 2d 3e 65 6e 64 4f 66 66 73 65 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 r(wd->endOffset,.context))......
1dc60 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 64 2d 3e return.true;.....if.(walker(wd->
1dc80 73 74 61 72 74 4f 66 66 73 65 74 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 startOffset,.context))......retu
1dca0 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 64 2d 3e 6f 72 64 65 rn.true;.....if.(walker(wd->orde
1dcc0 72 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 rClause,.context))......return.t
1dce0 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 77 64 2d 3e 70 61 72 74 69 74 69 6f rue;.....if.(walker(wd->partitio
1dd00 6e 43 6c 61 75 73 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 57 69 6e 64 6f 77 44 65 nClause,.context))......WindowDe
1dd20 66 20 20 2a 77 64 20 3d 20 28 57 69 6e 64 6f 77 44 65 66 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 f..*wd.=.(WindowDef.*).node;....
1dd40 7b 00 09 09 63 61 73 65 20 54 5f 57 69 6e 64 6f 77 44 65 66 3a 00 09 09 09 72 65 74 75 72 6e 20 {...case.T_WindowDef:....return.
1dd60 77 61 6c 6b 65 72 28 28 28 53 6f 72 74 42 79 20 2a 29 20 6e 6f 64 65 29 2d 3e 6e 6f 64 65 2c 20 walker(((SortBy.*).node)->node,.
1dd80 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 53 6f 72 74 42 79 3a 00 09 09 09 72 65 context);...case.T_SortBy:....re
1dda0 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 43 6f 6c 6c 61 74 65 43 6c 61 75 73 65 20 2a 29 20 6e turn.walker(((CollateClause.*).n
1ddc0 6f 64 65 29 2d 3e 61 72 67 2c 20 63 6f 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 43 6f ode)->arg,.context);...case.T_Co
1dde0 6c 6c 61 74 65 43 6c 61 75 73 65 3a 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 llateClause:....break;....}.....
1de00 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 74 63 2d .return.true;.....if.(walker(tc-
1de20 3e 74 79 70 65 4e 61 6d 65 2c 20 63 6f 6e 74 65 78 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e >typeName,.context))......return
1de40 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 74 63 2d 3e 61 72 67 2c 20 63 .true;.....if.(walker(tc->arg,.c
1de60 6f 6e 74 65 78 74 29 29 00 00 09 09 09 09 54 79 70 65 43 61 73 74 20 20 20 2a 74 63 20 3d 20 28 ontext))......TypeCast...*tc.=.(
1de80 54 79 70 65 43 61 73 74 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f TypeCast.*).node;....{...case.T_
1dea0 54 79 70 65 43 61 73 74 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 4d 75 6c TypeCast:....return.walker(((Mul
1dec0 74 69 41 73 73 69 67 6e 52 65 66 20 2a 29 20 6e 6f 64 65 29 2d 3e 73 6f 75 72 63 65 2c 20 63 6f tiAssignRef.*).node)->source,.co
1dee0 6e 74 65 78 74 29 3b 00 09 09 63 61 73 65 20 54 5f 4d 75 6c 74 69 41 73 73 69 67 6e 52 65 66 3a ntext);...case.T_MultiAssignRef:
1df00 00 09 09 09 62 72 65 61 6b 3b 00 09 09 09 7d 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 ....break;....}......return.true
1df20 3b 00 09 09 09 09 69 66 20 28 77 61 6c 6b 65 72 28 72 74 2d 3e 76 61 6c 2c 20 63 6f 6e 74 65 78 ;.....if.(walker(rt->val,.contex
1df40 74 29 29 00 09 09 09 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 00 09 09 09 09 69 66 20 28 77 61 t))......return.true;.....if.(wa
1df60 6c 6b 65 72 28 72 74 2d 3e 69 6e 64 69 72 65 63 74 69 6f 6e 2c 20 63 6f 6e 74 65 78 74 29 29 00 lker(rt->indirection,.context)).
1df80 00 09 09 09 09 52 65 73 54 61 72 67 65 74 20 20 2a 72 74 20 3d 20 28 52 65 73 54 61 72 67 65 74 .....ResTarget..*rt.=.(ResTarget
1dfa0 20 2a 29 20 6e 6f 64 65 3b 00 09 09 09 7b 00 09 09 63 61 73 65 20 54 5f 52 65 73 54 61 72 67 65 .*).node;....{...case.T_ResTarge
1dfc0 74 3a 00 09 09 09 72 65 74 75 72 6e 20 77 61 6c 6b 65 72 28 28 28 41 5f 41 72 72 61 79 45 78 70 t:....return.walker(((A_ArrayExp
1dfe0 72 20 2a 29 20 6e 6f 64 65 29 2d 3e 65 6c 65 6d 65 6e 74 73 2c 20 63 6f 6e 74 65 78 74 29 3b 00 r.*).node)->elements,.context);.