==== cost-p0001-vs-p0002 grp10 p0001
Sort  (cost=48197.20..48242.18 rows=17992 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=203.73..46925.61 rows=17992 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 10)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..199.23 rows=17992 width=0)
              Index Cond: (t.grp < 10)

==== cost-p0001-vs-p0002 grp10 p0002
Index Scan using t_slow on public.t  (cost=0.28..16380.28 rows=17992 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Order By: (slow_pt(t.p) <-> '(500,500)'::point)
  Order By Values Used: 1
  Filter: (t.grp < 10)

==== cost-p0001-vs-p0002 grp10_lim20k p0001
Limit  (cost=48197.20..48242.18 rows=17992 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  ->  Sort  (cost=48197.20..48242.18 rows=17992 width=12)
        Output: id, ((slow_pt(p) <-> '(500,500)'::point))
        Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
        ->  Bitmap Heap Scan on public.t  (cost=203.73..46925.61 rows=17992 width=12)
              Output: id, (slow_pt(p) <-> '(500,500)'::point)
              Recheck Cond: (t.grp < 10)
              ->  Bitmap Index Scan on t_grp  (cost=0.00..199.23 rows=17992 width=0)
                    Index Cond: (t.grp < 10)

==== cost-p0001-vs-p0002 grp10_lim20k p0002
Limit  (cost=0.28..16380.28 rows=17992 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  ->  Index Scan using t_slow on public.t  (cost=0.28..16380.28 rows=17992 width=12)
        Output: id, ((slow_pt(p) <-> '(500,500)'::point))
        Order By: (slow_pt(t.p) <-> '(500,500)'::point)
        Order By Values Used: 1
        Filter: (t.grp < 10)

==== cost-p0001-vs-p0002 grp2 p0001
Sort  (cost=6836.55..6841.67 rows=2048 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=24.17..6723.91 rows=2048 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 2)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..23.66 rows=2048 width=0)
              Index Cond: (t.grp < 2)

==== cost-p0001-vs-p0002 grp2 p0002
Sort  (cost=6836.55..6841.67 rows=2048 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=24.17..6723.91 rows=2048 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 2)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..23.66 rows=2048 width=0)
              Index Cond: (t.grp < 2)

==== cost-p0001-vs-p0002 grp20 p0001
Sort  (cost=101713.35..101809.65 rows=38518 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=434.81..98779.58 rows=38518 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 20)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..425.18 rows=38518 width=0)
              Index Cond: (t.grp < 20)

==== cost-p0001-vs-p0002 grp20 p0002
Index Scan using t_slow on public.t  (cost=0.28..16380.28 rows=38518 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Order By: (slow_pt(t.p) <-> '(500,500)'::point)
  Order By Values Used: 1
  Filter: (t.grp < 20)

==== cost-p0001-vs-p0002 grp5 p0001
Sort  (cost=20989.26..21008.09 rows=7533 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=86.68..20504.17 rows=7533 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 5)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..84.79 rows=7533 width=0)
              Index Cond: (t.grp < 5)

==== cost-p0001-vs-p0002 grp5 p0002
Index Scan using t_slow on public.t  (cost=0.28..16380.28 rows=7533 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Order By: (slow_pt(t.p) <-> '(500,500)'::point)
  Order By Values Used: 1
  Filter: (t.grp < 5)

==== cost-p0001-vs-p0002 grp50 p0001
Sort  (cost=259844.62..260092.18 rows=99022 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(t.p) <-> '(500,500)'::point))
  ->  Bitmap Heap Scan on public.t  (cost=1115.72..251628.05 rows=99022 width=12)
        Output: id, (slow_pt(p) <-> '(500,500)'::point)
        Recheck Cond: (t.grp < 50)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..1090.96 rows=99022 width=0)
              Index Cond: (t.grp < 50)

==== cost-p0001-vs-p0002 grp50 p0002
Index Scan using t_slow on public.t  (cost=0.28..16380.28 rows=99022 width=12)
  Output: id, ((slow_pt(p) <-> '(500,500)'::point))
  Order By: (slow_pt(t.p) <-> '(500,500)'::point)
  Order By Values Used: 1
  Filter: (t.grp < 50)

==== cost-p0001-vs-p0002 unaffected_btree p0001
Sort  (cost=1724.82..1730.80 rows=2393 width=8)
  Output: id, grp
  Sort Key: t.id
  ->  Bitmap Heap Scan on public.t  (cost=30.84..1590.52 rows=2393 width=8)
        Output: id, grp
        Recheck Cond: (t.grp = 7)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..30.24 rows=2393 width=0)
              Index Cond: (t.grp = 7)

==== cost-p0001-vs-p0002 unaffected_btree p0002
Sort  (cost=1724.82..1730.80 rows=2393 width=8)
  Output: id, grp
  Sort Key: t.id
  ->  Bitmap Heap Scan on public.t  (cost=30.84..1590.52 rows=2393 width=8)
        Output: id, grp
        Recheck Cond: (t.grp = 7)
        ->  Bitmap Index Scan on t_grp  (cost=0.00..30.24 rows=2393 width=0)
              Index Cond: (t.grp = 7)

==== exec-master-vs-p0001 box_tied_100k master
Limit  (cost=0.41..9889.61 rows=100000 width=12)
  Output: id, ((b <-> '(5000,5000)'::point))
  ->  Index Scan using boxes_gist on public.boxes  (cost=0.41..98892.41 rows=1000000 width=12)
        Output: id, (b <-> '(5000,5000)'::point)
        Order By: (boxes.b <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 box_tied_100k p0001
Limit  (cost=0.41..9889.61 rows=100000 width=12)
  Output: id, ((b <-> '(5000,5000)'::point))
  ->  Index Scan using boxes_gist on public.boxes  (cost=0.41..98892.41 rows=1000000 width=12)
        Output: id, ((b <-> '(5000,5000)'::point))
        Order By: (boxes.b <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 box_varied_100k master
Limit  (cost=0.29..8994.68 rows=100000 width=12)
  Output: id, ((b <-> '(5000,5000)'::point))
  ->  Index Scan using boxes_v_gist on public.boxes_v  (cost=0.29..89944.29 rows=1000000 width=12)
        Output: id, (b <-> '(5000,5000)'::point)
        Order By: (boxes_v.b <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 box_varied_100k p0001
Limit  (cost=0.29..8994.68 rows=100000 width=12)
  Output: id, ((b <-> '(5000,5000)'::point))
  ->  Index Scan using boxes_v_gist on public.boxes_v  (cost=0.29..89944.29 rows=1000000 width=12)
        Output: id, ((b <-> '(5000,5000)'::point))
        Order By: (boxes_v.b <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 circle_ctl_100k master
Limit  (cost=0.29..8695.08 rows=100000 width=12)
  Output: id, ((c <-> '(5000,5000)'::point))
  ->  Index Scan using circles_gist on public.circles  (cost=0.29..86948.29 rows=1000000 width=12)
        Output: id, (c <-> '(5000,5000)'::point)
        Order By: (circles.c <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 circle_ctl_100k p0001
Limit  (cost=0.29..8695.08 rows=100000 width=12)
  Output: id, ((c <-> '(5000,5000)'::point))
  ->  Index Scan using circles_gist on public.circles  (cost=0.29..86948.29 rows=1000000 width=12)
        Output: id, (c <-> '(5000,5000)'::point)
        Order By: (circles.c <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 exprindex_plpgsql_10 master
Limit  (cost=0.29..26.07 rows=10 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, (slow_pt(p) <-> '(5000,5000)'::point)
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 exprindex_plpgsql_10 p0001
Limit  (cost=0.29..26.07 rows=10 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 exprindex_plpgsql_10k master
Limit  (cost=0.29..25782.28 rows=10000 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, (slow_pt(p) <-> '(5000,5000)'::point)
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 exprindex_plpgsql_10k p0001
Limit  (cost=0.29..25782.28 rows=10000 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 exprindex_plpgsql_1k master
Limit  (cost=0.29..2578.48 rows=1000 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, (slow_pt(p) <-> '(5000,5000)'::point)
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 exprindex_plpgsql_1k p0001
Limit  (cost=0.29..2578.48 rows=1000 width=12)
  Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
  ->  Index Scan using pts_slow on public.pts  (cost=0.29..2578200.29 rows=1000000 width=12)
        Output: id, ((slow_pt(p) <-> '(5000,5000)'::point))
        Order By: (slow_pt(pts.p) <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 exprindex_sqlvec_10k master
Limit  (cost=0.28..8773.48 rows=10000 width=12)
  Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
  ->  Index Scan using vecs_gist on public.vecs  (cost=0.28..175464.28 rows=200000 width=12)
        Output: id, (point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)
        Order By: (point(vdist(vecs.v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)

==== exec-master-vs-p0001 exprindex_sqlvec_10k p0001
Limit  (cost=0.28..8773.48 rows=10000 width=12)
  Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
  ->  Index Scan using vecs_gist on public.vecs  (cost=0.28..175464.28 rows=200000 width=12)
        Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
        Order By: (point(vdist(vecs.v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 exprindex_sqlvec_1k master
Limit  (cost=0.28..877.60 rows=1000 width=12)
  Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
  ->  Index Scan using vecs_gist on public.vecs  (cost=0.28..175464.28 rows=200000 width=12)
        Output: id, (point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)
        Order By: (point(vdist(vecs.v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)

==== exec-master-vs-p0001 exprindex_sqlvec_1k p0001
Limit  (cost=0.28..877.60 rows=1000 width=12)
  Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
  ->  Index Scan using vecs_gist on public.vecs  (cost=0.28..175464.28 rows=200000 width=12)
        Output: id, ((point(vdist(v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point))
        Order By: (point(vdist(vecs.v, '{0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911,0.25742574257425743,0.6237623762376238,0.9900990099009901,0.3564356435643564,0.7227722772277227,0.0891089108910891,0.45544554455445546,0.8217821782178217,0.18811881188118812,0.5544554455445545,0.9207920792079208,0.2871287128712871,0.6534653465346535,0.019801980198019802,0.38613861386138615,0.7524752475247525,0.1188118811881188,0.48514851485148514,0.8514851485148515,0.21782178217821782,0.5841584158415841,0.9504950495049505,0.31683168316831684,0.6831683168316832,0.04950495049504951,0.4158415841584158,0.7821782178217822,0.1485148514851485,0.5148514851485149,0.8811881188118812,0.24752475247524752,0.6138613861386139,0.9801980198019802,0.3465346534653465,0.7128712871287128,0.07920792079207921,0.44554455445544555,0.8118811881188119,0.1782178217821782,0.5445544554455446,0.9108910891089109,0.27722772277227725,0.6435643564356436,0.009900990099009901,0.37623762376237624,0.7425742574257426,0.10891089108910891,0.4752475247524752,0.8415841584158416,0.2079207920792079,0.5742574257425742,0.9405940594059405,0.3069306930693069,0.6732673267326733,0.039603960396039604,0.40594059405940597,0.7722772277227723,0.13861386138613863,0.504950495049505,0.8712871287128713,0.2376237623762376,0.6039603960396039,0.9702970297029703,0.33663366336633666,0.7029702970297029,0.06930693069306931,0.43564356435643564,0.801980198019802,0.16831683168316833,0.5346534653465347,0.900990099009901,0.26732673267326734,0.6336633663366337,0,0.36633663366336633,0.7326732673267327,0.09900990099009901,0.46534653465346537,0.8316831683168316,0.19801980198019803,0.5643564356435643,0.9306930693069307,0.297029702970297,0.6633663366336634,0.0297029702970297,0.39603960396039606,0.7623762376237624,0.12871287128712872,0.49504950495049505,0.8613861386138614,0.22772277227722773,0.594059405940594,0.9603960396039604,0.32673267326732675,0.693069306930693,0.0594059405940594,0.42574257425742573,0.7920792079207921,0.15841584158415842,0.5247524752475248,0.8910891089108911}'::double precision[]), '0'::double precision) <-> '(0,0)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 gist_point_10 master
Limit  (cost=0.29..1.07 rows=10 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, (p <-> '(5000,5000)'::point)
        Order By: (pts.p <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 gist_point_10 p0001
Limit  (cost=0.29..1.07 rows=10 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, ((p <-> '(5000,5000)'::point))
        Order By: (pts.p <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 gist_point_100k master
Limit  (cost=0.29..7820.28 rows=100000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, (p <-> '(5000,5000)'::point)
        Order By: (pts.p <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 gist_point_100k p0001
Limit  (cost=0.29..7820.28 rows=100000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, ((p <-> '(5000,5000)'::point))
        Order By: (pts.p <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 gist_point_1k master
Limit  (cost=0.29..78.48 rows=1000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, (p <-> '(5000,5000)'::point)
        Order By: (pts.p <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 gist_point_1k p0001
Limit  (cost=0.29..78.48 rows=1000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_gist on public.pts  (cost=0.29..78200.29 rows=1000000 width=12)
        Output: id, ((p <-> '(5000,5000)'::point))
        Order By: (pts.p <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== exec-master-vs-p0001 spg_point_100k master
Limit  (cost=0.29..6742.28 rows=100000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_s_spg on public.pts_s  (cost=0.29..67420.29 rows=1000000 width=12)
        Output: id, (p <-> '(5000,5000)'::point)
        Order By: (pts_s.p <-> '(5000,5000)'::point)

==== exec-master-vs-p0001 spg_point_100k p0001
Limit  (cost=0.29..6742.28 rows=100000 width=12)
  Output: id, ((p <-> '(5000,5000)'::point))
  ->  Index Scan using pts_s_spg on public.pts_s  (cost=0.29..67420.29 rows=1000000 width=12)
        Output: id, ((p <-> '(5000,5000)'::point))
        Order By: (pts_s.p <-> '(5000,5000)'::point)
        Order By Values Used: 1

==== ios-p0003-vs-p0004 heikki_exact p0003
Sort  (cost=2500809.39..2500834.39 rows=10000 width=4)
  Output: (hk_costly(i))
  Sort Key: (hk_costly(hk.i))
  ->  Seq Scan on public.hk  (cost=0.00..2500145.00 rows=10000 width=4)
        Output: hk_costly(i)

==== ios-p0003-vs-p0004 heikki_exact p0004
Sort  (cost=2500809.39..2500834.39 rows=10000 width=4)
  Output: (hk_costly(i))
  Sort Key: (hk_costly(hk.i))
  ->  Seq Scan on public.hk  (cost=0.00..2500145.00 rows=10000 width=4)
        Output: hk_costly(i)

==== ios-p0003-vs-p0004 heikki_orderby_i p0003
Index Only Scan using hk_idx on public.hk  (cost=0.29..2500372.04 rows=10000 width=8)
  Output: (hk_costly(i)), i

==== ios-p0003-vs-p0004 heikki_orderby_i p0004
Index Only Scan using hk_idx on public.hk  (cost=0.29..372.04 rows=10000 width=8)
  Output: (hk_costly(i)), i

==== ios-p0003-vs-p0004 heikki_where_lt9000 p0003
Seq Scan on public.hk  (cost=0.00..2249920.00 rows=8999 width=4)
  Output: hk_costly(i)
  Filter: (hk.i < 9000)

==== ios-p0003-vs-p0004 heikki_where_lt9000 p0004
Seq Scan on public.hk  (cost=0.00..2249920.00 rows=8999 width=4)
  Output: hk_costly(i)
  Filter: (hk.i < 9000)

==== join-p0002-vs-p0003 cat0 p0002
Sort  (cost=4485.32..4485.82 rows=198 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.28..4477.77 rows=198 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.29 rows=1 width=4)
              Output: d.cat
              Index Cond: (d.cat = 0)
        ->  Seq Scan on public.f  (cost=0.00..3972.00 rows=198 width=24)
              Output: f.id, f.p, f.cat
              Filter: (f.cat = 0)

==== join-p0002-vs-p0003 cat0 p0003
Sort  (cost=4485.32..4485.82 rows=198 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.28..4477.77 rows=198 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.29 rows=1 width=4)
              Output: d.cat
              Index Cond: (d.cat = 0)
        ->  Seq Scan on public.f  (cost=0.00..3972.00 rows=198 width=24)
              Output: f.id, f.p, f.cat
              Filter: (f.cat = 0)

==== join-p0002-vs-p0003 cat10 p0002
Sort  (cost=8845.22..8849.72 rows=1798 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=8.54..8748.02 rows=1798 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=8.43..8.43 rows=9 width=4)
              Output: d.cat
              ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.43 rows=9 width=4)
                    Output: d.cat
                    Index Cond: (d.cat < 10)

==== join-p0002-vs-p0003 cat10 p0003
Sort  (cost=8845.22..8849.72 rows=1798 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=8.54..8748.02 rows=1798 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=8.43..8.43 rows=9 width=4)
              Output: d.cat
              ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.43 rows=9 width=4)
                    Output: d.cat
                    Index Cond: (d.cat < 10)

==== join-p0002-vs-p0003 cat3 p0002
Sort  (cost=5762.99..5764.48 rows=599 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=8.37..5735.35 rows=599 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=8.33..8.33 rows=3 width=4)
              Output: d.cat
              ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.33 rows=3 width=4)
                    Output: d.cat
                    Index Cond: (d.cat < 3)

==== join-p0002-vs-p0003 cat3 p0003
Sort  (cost=5762.99..5764.48 rows=599 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=8.37..5735.35 rows=599 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=8.33..8.33 rows=3 width=4)
              Output: d.cat
              ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.33 rows=3 width=4)
                    Output: d.cat
                    Index Cond: (d.cat < 3)

==== join-p0002-vs-p0003 region0 p0002
Sort  (cost=56385.96..56436.41 rows=20180 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=18.78..54943.02 rows=20180 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=17.51..17.51 rows=101 width=8)
              Output: d.region, d.cat
              ->  Seq Scan on public.d  (cost=0.00..17.51 rows=101 width=8)
                    Output: d.region, d.cat
                    Filter: (d.region = 0)

==== join-p0002-vs-p0003 region0 p0003
Nested Loop  (cost=0.57..21176.07 rows=20180 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region = 0)

==== join-p0002-vs-p0003 region0_lim1k p0002
Limit  (cost=0.57..3552.40 rows=1000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..71676.52 rows=20180 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=24)
              Output: f.id, f.p, f.cat
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region = 0)

==== join-p0002-vs-p0003 region0_lim1k p0003
Limit  (cost=0.57..1049.90 rows=1000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..21176.07 rows=20180 width=16)
        Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
              Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
              Order By Values Used: 1
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region = 0)

==== join-p0002-vs-p0003 region2 p0002
Sort  (cost=108214.95..108315.35 rows=40160 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=20.03..105144.02 rows=40160 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=17.51..17.51 rows=201 width=8)
              Output: d.region, d.cat
              ->  Seq Scan on public.d  (cost=0.00..17.51 rows=201 width=8)
                    Output: d.region, d.cat
                    Filter: (d.region < 2)

==== join-p0002-vs-p0003 region2 p0003
Nested Loop  (cost=0.57..21176.07 rows=40160 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 2)

==== join-p0002-vs-p0003 region4 p0002
Sort  (cost=212071.75..212272.05 rows=80120 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=22.53..205546.02 rows=80120 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=17.51..17.51 rows=401 width=8)
              Output: d.region, d.cat
              ->  Seq Scan on public.d  (cost=0.00..17.51 rows=401 width=8)
                    Output: d.region, d.cat
                    Filter: (d.region < 4)

==== join-p0002-vs-p0003 region4 p0003
Nested Loop  (cost=0.57..21176.07 rows=80120 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 4)

==== join-p0002-vs-p0003 region6 p0002
Sort  (cost=316078.96..316379.16 rows=120080 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=25.03..305948.03 rows=120080 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=17.51..17.51 rows=601 width=8)
              Output: d.region, d.cat
              ->  Seq Scan on public.d  (cost=0.00..17.51 rows=601 width=8)
                    Output: d.region, d.cat
                    Filter: (d.region < 6)

==== join-p0002-vs-p0003 region6 p0003
Nested Loop  (cost=0.57..21176.07 rows=120080 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 6)

==== join-p0002-vs-p0003 region9 p0002
Nested Loop  (cost=0.57..471676.12 rows=180020 width=16)
  Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=24)
        Output: f.id, f.p, f.cat
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9 p0003
Nested Loop  (cost=0.57..21176.07 rows=180020 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim100 p0002
Limit  (cost=0.57..262.58 rows=100 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..471676.12 rows=180020 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=24)
              Output: f.id, f.p, f.cat
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim100 p0003
Limit  (cost=0.57..12.33 rows=100 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..21176.07 rows=180020 width=16)
        Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
              Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
              Order By Values Used: 1
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim1k p0002
Limit  (cost=0.57..2620.70 rows=1000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..471676.12 rows=180020 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=24)
              Output: f.id, f.p, f.cat
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim1k p0003
Limit  (cost=0.57..118.20 rows=1000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..21176.07 rows=180020 width=16)
        Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
              Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
              Order By Values Used: 1
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim5k p0002
Limit  (cost=0.57..13101.21 rows=5000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..471676.12 rows=180020 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=24)
              Output: f.id, f.p, f.cat
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 region9_lim5k p0003
Limit  (cost=0.57..588.71 rows=5000 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Nested Loop  (cost=0.57..21176.07 rows=180020 width=16)
        Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
        ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
              Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
              Order By: (slow_pt(f.p) <-> '(500,500)'::point)
              Order By Values Used: 1
        ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
              Output: d.region, d.cat
              Cache Key: f.cat
              Cache Mode: logical
              Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
              ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
                    Output: d.region, d.cat
                    Index Cond: (d.cat = f.cat)
                    Filter: (d.region < 9)

==== join-p0002-vs-p0003 unaffected_join p0002
Limit  (cost=5549.02..5551.52 rows=1000 width=8)
  Output: f.id, d.region
  ->  Sort  (cost=5549.02..5599.47 rows=20180 width=8)
        Output: f.id, d.region
        Sort Key: f.id
        ->  Hash Join  (cost=18.78..4442.57 rows=20180 width=8)
              Output: f.id, d.region
              Hash Cond: (f.cat = d.cat)
              ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=8)
                    Output: f.id, f.p, f.cat
              ->  Hash  (cost=17.51..17.51 rows=101 width=8)
                    Output: d.region, d.cat
                    ->  Seq Scan on public.d  (cost=0.00..17.51 rows=101 width=8)
                          Output: d.region, d.cat
                          Filter: (d.region = 0)

==== join-p0002-vs-p0003 unaffected_join p0003
Limit  (cost=5549.02..5551.52 rows=1000 width=8)
  Output: f.id, d.region
  ->  Sort  (cost=5549.02..5599.47 rows=20180 width=8)
        Output: f.id, d.region
        Sort Key: f.id
        ->  Hash Join  (cost=18.78..4442.57 rows=20180 width=8)
              Output: f.id, d.region
              Hash Cond: (f.cat = d.cat)
              ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=8)
                    Output: f.id, f.p, f.cat
              ->  Hash  (cost=17.51..17.51 rows=101 width=8)
                    Output: d.region, d.cat
                    ->  Seq Scan on public.d  (cost=0.00..17.51 rows=101 width=8)
                          Output: d.region, d.cat
                          Filter: (d.region = 0)

==== join-p0004-single-forced cat3_forced_knn p0004
Nested Loop  (cost=0.57..21176.07 rows=599 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=4)
        Output: d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Only Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=4)
              Output: d.cat
              Index Cond: ((d.cat = f.cat) AND (d.cat < 3))

==== join-p0004-single-forced cat3_forced_sort p0004
Sort  (cost=5762.99..5764.48 rows=599 width=12)
  Output: f.id, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=8.37..5735.35 rows=599 width=12)
        Output: f.id, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=8.33..8.33 rows=3 width=4)
              Output: d.cat
              ->  Index Only Scan using d_cat on public.d  (cost=0.28..8.33 rows=3 width=4)
                    Output: d.cat
                    Index Cond: (d.cat < 3)

==== join-p0004-single-forced region4_forced_knn p0004
Nested Loop  (cost=0.57..21176.07 rows=80120 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Index Scan using f_slow on public.f  (cost=0.28..15880.28 rows=200000 width=32)
        Output: f.id, f.p, f.cat, ((slow_pt(f.p) <-> '(500,500)'::point))
        Order By: (slow_pt(f.p) <-> '(500,500)'::point)
        Order By Values Used: 1
  ->  Memoize  (cost=0.29..0.31 rows=1 width=8)
        Output: d.region, d.cat
        Cache Key: f.cat
        Cache Mode: logical
        Estimates: capacity=1001 distinct keys=1001 lookups=200000 hit percent=99.50%
        ->  Index Scan using d_cat on public.d  (cost=0.28..0.30 rows=1 width=8)
              Output: d.region, d.cat
              Index Cond: (d.cat = f.cat)
              Filter: (d.region < 4)

==== join-p0004-single-forced region4_forced_sort p0004
Sort  (cost=212071.75..212272.05 rows=80120 width=16)
  Output: f.id, d.region, ((slow_pt(f.p) <-> '(500,500)'::point))
  Sort Key: ((slow_pt(f.p) <-> '(500,500)'::point))
  ->  Hash Join  (cost=22.53..205546.02 rows=80120 width=16)
        Output: f.id, d.region, (slow_pt(f.p) <-> '(500,500)'::point)
        Hash Cond: (f.cat = d.cat)
        ->  Seq Scan on public.f  (cost=0.00..3472.00 rows=200000 width=24)
              Output: f.id, f.p, f.cat
        ->  Hash  (cost=17.51..17.51 rows=401 width=8)
              Output: d.region, d.cat
              ->  Seq Scan on public.d  (cost=0.00..17.51 rows=401 width=8)
                    Output: d.region, d.cat
                    Filter: (d.region < 4)

