# LogicTest: 5node

statement ok
CREATE TABLE xyz (
  x INT,
  y INT,
  z TEXT
)

statement ok
ALTER TABLE xyz SPLIT AT VALUES (2), (3), (4), (5)

statement ok
ALTER TABLE xyz EXPERIMENTAL_RELOCATE VALUES
  (ARRAY[1], 1),
  (ARRAY[2], 2),
  (ARRAY[3], 3),
  (ARRAY[4], 4),
  (ARRAY[5], 5)

query TTTI colnames
SELECT start_key, end_key, replicas, lease_holder from [SHOW RANGES FROM TABLE xyz WITH DETAILS]
ORDER BY 1
----
start_key           end_key       replicas  lease_holder
<before:/Table/72>  …/1/2         {1}       1
…/1/2               …/1/3         {2}       2
…/1/3               …/1/4         {3}       3
…/1/4               …/1/5         {4}       4
…/1/5               <after:/Max>  {5}       5

subtest Union

# Simple UNION ALL and UNION. (The ORDER BY applies to the UNION, not the last select.)
query T
EXPLAIN (DISTSQL) SELECT x FROM xyz UNION ALL SELECT x FROM xyz ORDER BY x
----
distribution: full
vectorized: true
·
• union all
│
├── • sort
│   │ order: +x
│   │
│   └── • scan
│         missing stats
│         table: xyz@xyz_pkey
│         spans: FULL SCAN
│
└── • sort
    │ order: +x
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysl11v2koQhu_Pr7Dm6hwdW2bWNh--ShqohEQgBSq1qqLIxZsUBVhqGwUS8d8rA2mwlx15F7iIwtc7r595VsAbpL9nEELn213vutu3_m13R-PRl95_1qjT69yMrbX1eTi4tdabV-trvzvoW9e93onnBsN2Z2h9-m6twYaFiHk_mvMUwh-AYAMDGzywwQcbAri3YZmICU9TkeQvedu9oRuvIazZMF0sV1n-8L0NE5FwCN8gm2YzDiGMo58zPuRRzBO3BjbEPIums92Y9eb1ar15fVg-8w3YcCNmq_kiDXd9Rsso_9dxGdxvbRCr7GNEmkVPHEI86tRtQ1jb2tVrjUSS8cQNio2u8H_lOFYaF-iMO6aAl8XglXqhCQfUAOGXB6pJfMwRScwTHp-acqJVXzhi6bIiKFWfWqkPUwM4s09QqU9Q7lPkgxqmaIviMsf1Kp8Y1Cl2MKVufmLqxhwuDUI6MyYkUAOFdGbULM50FM3OTBEAq74bpr8az3H9yo4ynWKHzTTMHW2YcsBLg5AcNSGBGigkR9UsznSUmTlaBOBV342nvxrfcYPKjno6xQ6baZo72jTlgJcGITlqQgI1UEiOqlmc6ahn5mgRgF99N77-agKnsqG-Tq3DXlrmhrZMKeBlMUh-mnBADRCSn2oSZ_rpm_np6_w4GPJ0KRYpNxrlYN6ex098f7WpWCUTfpeIye61-7uDXdDugZin2f5Z3N_pLt6fSrOER_O_v_GOk5BM8gtJeJy0_8p3HMXIKE9dKignecalpOvzyahAHcWkqICMYnUN6nUyqqFOkqA3aBNqBCuvnNUks1rqVvVyUsu8FZMMpWWnVijRQlp3ZOprlHvRviNRDCXjkVYefXWxhpRFO08W86Uw2nqKvkyM1h4J7yVXkRafUYrJxGjzkVC_KWXR7pPFpHPEzN2XiDHafUa4L1nBaPcZpVhLCqPdZ4T7chbtPllMWiUzd9_PP7sfZ-LlYRpDCLXDzTnx5_0G-RuipzT_AjH6JV52uePNMv_4f4xmKbfhNnrmbZ7xZD5dTNNsOoEwS1Z8u_3nTwAAAP__5i9lBA==

query T
EXPLAIN (DISTSQL) SELECT x FROM xyz UNION SELECT x FROM xyz ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • union
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysll9v2jAUxd_3KaL7tGlBiZ0_kDx1K0xCaqEDJm2aUJWR2y5qSFgcVGjFd58S1qXYjRVb8FCVQH7n3OMT7Gdgf1IIYfT95urTeGK8H47ni_nXqw_GfHQ1ulwYO-PLbHpt7PZPxrfJeDp54_p0NhzNjM8_jB2YkOUxTqI1Mgh_AgETKJjggAkumODB0oRNka-QsbyovvJc3zCOdxDaJiTZZltWl5cmrPICIXyGMilThBAW0a8UZxjFWFg2mBBjGSVpLbPbP13s9k-3mwfcgwmXebpdZyys_cw3UfVvz6KwPJiQb8tGgpXRPUJIXnkaDyG0D6aeLe-stihny1OxNUxYmWSr0iJcVhekVdDhBIlSEI2i11nR5RXbZ2yEtllexFhgfCKzPMg80e4peJwnqpTCPC9KLCxKeL2PrYI-L0hOBEn3_hHl_lm0ZzmdHwxtY_6ZjfGPhq9irCmqsEjdHw2lKBpFX__ROJ2Rdg-fqofv9Cy3cyuorrH-mY3xreirGGvWiOq3QimKRrGv34rTGZ3u4Tvq4bs9y-vcCkfX2ODMxvhWDFSMNWvk6LdCKYpGcaDfitMZ3e7hu-rhe73OnXB1bQVntcU3IlCx1ayPq98IpSAaxUC_EYHKIWaGbJNnDLkD1ttSNifVI9VJDON7PB7bWL4tVnhT5Kv6u8e30xpUX4iRlcdPneObcfbyESsLjNb_z76vSURKou0kmydRKck9IZHXJCKgHG2UMJ8rRXnt81HBlSePSiUrX4oK2kk-T-pLSYN2EuFJA-3QBVSgjRLmI_KqE0nX-wJLXnYiWUEqsPTrLrL0-y7OKC886bfPOBBY8sYTv53lCCx55WUziix56WUscUZ57SlpnzEQWPLeU7ud5Qq_pvLey2YUWfLey1hBtQfdpfnjbRJDCPa_V--NPy8vqG6I7lm1Ec5_5481d7HfVNvYXZQyNOE6esAhllisk6zalFcQlsUWD4d3fwMAAP__L_hCwg==

# UNION with no overlap.
query T
EXPLAIN (DISTSQL) SELECT x FROM xyz WHERE x < 3 UNION SELECT x FROM xyz WHERE x >= 3 ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • union
    │
    ├── • filter
    │   │ filter: x < 3
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 3
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysmNGPqkYUxt_7V5Dz1KYYmBlQJGmy7dWbmuzVW7Vpm9ZsKMxuySJYwKzuxv-9QboizHpgJviwWRG_c86X33fC-AbZvxG4MP396_2Ps7n27WS2Wq9-uf9OW03vp5_W2kH7vFx80Q7HV-23n6fLqXbQ_tqbJvM1pv06ny3mbTfyHzSmLZaT6VL76Q_tADrEScDn3pZn4P4JBHSgoAMDHSzQwYaNDrs08XmWJWlxy9v5C7PgAK6pQxjv9nlxeaODn6Qc3DfIwzzi4MLa-zviS-4FPDVM0CHguRdG5zKH4-vd4fj6sHvmR9DhUxLtt3HmnvtZ7bzi34FBYXPSIdnnVYks9544uOSqp9kEXPOkd2_rcxjlPOWpYdd7Kq-72h2pnHJddzZfOzcboY1GbJlGrv0h_RrEGn0RNYdIi0V-u0NWsxMpiyZhloexnxu04c8duVnRblSkUrNXFe3OFYfNirdnrArt4yQNeMqDWpnNCeuJdXdh1OiJSbmwStKcpwYjzXrf3yzoNAuSWkEikQXpKBh0YLDO20KqsUsWhv1vi6GyQ31bJOwLNY9Ii0kq-0LKpCq9Arnd94XU7FXFofq-qM9Iu4NA5TlgA8PqHBUq09gFg1H_URmpOkT6tkiIippHpMUklahImVSBS9WjIjV7VXGkHpX6jKw7CEyeA2tg2J2jwmQau2Dg9B8VR9Uh0rdFQlTUPCItJqlERcqkClymHhWp2auKjnpU6jNa3UGw5DmwB52DYsm0dYFg3H9Qxqr-kH4NEmKi5hBpsUglJlIWVdBa6jGRmr2qOFaPyVjmYLTk2S6JM944tH1cymyUGpDidMeDJ14eBbNkn_r8a5r453vLt4uz0PlCwLO8_JSUb2bx-0dZnnJve_nt41qJoEr2baXyaH4tRVEpdltKUGKokoU0JcxnoVLDmhS5lqKClK0sJQw4RKVGtwdkQlcj3HUqwYKDSo0R25tKY5xPhIXyBFcjtAV2hHZRC8edIG4RYUiCA48BIWrhyGNa4pA48wQJNRW0cOgJBsVIEMOxJwj3ohbOPXGQxsQpcfIx90UtnH1MSxiS4uhTBH0maOHoU2zVO4IYjj5FAi5q4ehTbN2LU6rve1FLfeGLQ-LoUwR9S9BqWfkIFeUjWk0MR58iARe1cPSZiTQmTMlw9jH3RS2cfUxrXDyEPUbJy0MYgAvm_6_BB3_eX1B8wXvKiifB1T_Jy1l3fdwVz3GPXpRxHb54z3zCc55uw7h4KvXBzdM9P52--S8AAP__VEX7oA==

# UNION with partial overlap.
query T
EXPLAIN (DISTSQL) SELECT x FROM xyz WHERE x <= 4 UNION SELECT x FROM xyz WHERE x > 1 ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • union
    │
    ├── • filter
    │   │ filter: x <= 4
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x > 1
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysmNFvglYUxt_3V5DztGUYuPeCIsmSbtVmJq126rItm2mY3HakCA4w1Tb-7wuyinDrgXuDD01F_M45X37fCdcPSP8NwYXx74_3P06m2rejyWK5-OX-O20xvh_fLrW9djefPWj7w7v228_j-Vjba3_tTJOtf9As7dfpZDZtupNrRJvNR-O59tMf2h50iGKfT70NT8H9EwjoQEEHBjpYoIMNKx22SbzmaRon-S0fpy9M_D24pg5BtN1l-eWVDus44eB-QBZkIQcXlt7fIZ9zz-eJYYIOPs-8IDyV2R_eb_aH96ftKz-ADrdxuNtEqXvqZ7H18n97BoXVUYd4l5Ul0sx74eCSi54mI3DNo96-rbsgzHjCE8Ou9lRcd7UbcjbKdd3JdOlc7YPW-rBl-ri0h3TrD6v1RdQMIg0O5dA1WWTVW5HyaBSkWRCtM4PWDLohVyvatYpUaviyot26Yr9e8fqMZaFdFCc-T7hfKbM6Yj2x9i4Maj0xKRcWcZLxxGCkXu_7qwWdekFSKUgkwiCdBYP2DNZ6W0g1dg5Dv_Nt0Vc2qGuHhH2hZhFp8EhpX0i5VKZXILf9vpAavqzYV98X1RlpexKoPAisZ1ito0JlGjtzMOg8KgNVg0jXDglRUbOINHikFBUpl0pwqXpUpIYvKw7Uo1KdkbUngcmDYPUMu3VUmExjZw6czqPiqBpEunZIiIqaRaTBI6WoSLlUgsvUoyI1fFnRUY9KdUarPQmWPAh2r3VQLJm2zhQMOw_KUNUe0q0_QkzUDCINDinFRMqjElpLPSZSw5cVh-oxGcocjOY83cZRymuHtq9LmbVSPZKf7rj_woujYBrvkjV_TOL16d7i7ewkdLrg8zQrPiXFm0n0-VGaJdzbnH_7uFQiqJJ9Xak4ml9KUVSKXZcSlBiqZCFNCfNZqFS_IkUupaggZStLCQP2UanB9QGZ0NUAd51KsOCgUkPE9rrSEOcTYaE4wVUIbYAdoV3UwnEniFtEGJLgwGNAiFo48piWOCTOPEFCTQUtHHqCQTEQxHDsCcK9qIVzTxykMXFKnHzMfVELZx_TEoakOPoUQZ8JWjj6FFv1jiCGo0-RgItaOPoUW_filOr7XtRSX_jikDj6FEHfErQaVj5CRfGIVhHD0adIwEUtHH1mIo0JUzKcfcx9UQtnH9Ma5g9hz2H89hT44IL5_6v3xZ_PF-Rf8F7S_Elw8U_8dtJdHrb5c9yzF6ZchwfvlY94xpNNEOVPpWtws2THj8dv_gsAAP__SS_7mg==

# UNION ALL with swapped column orders.
query T
EXPLAIN (DISTSQL) SELECT x, y FROM xyz UNION ALL SELECT y, x from xyz
----
distribution: full
vectorized: true
·
• union all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyslltvmzAUx9_3KdB52iSjYC658NSq7aRIadI1mTRpiioWTjtUgpkNamiV7z5B1gtQPHoUHioZm59_Pv8jN0-g_sTgw8WPq9npdG58Pp8uV8tvsy_G8mJ2cbYydswojK_Xi0tjVzwa3-fTxdw4nc2epwtm7F6mgUEiQpwHW1Tg_wQODGxg4AADFxh4sGaQSrFBpYQslzxVH0zDHfgWgyhJ86x8vWawERLBf4IsymIEH1bBrxivMQhRDixgEGIWRHG1za54PNkVjzfpPRbA4EzE-TZRfqUODJZpUI7MQamyyDPfOLHZCYf1noHIs9ctVRbcIfj8jeP0HHxrz2iaHlWzy8xumHmdZq9CCmUUxEaeCBmixLDmtN6_c4S5MEU64FZj5ftKVkOJd1frdYePy3i9ZJymTL1AvH90nBLdwDYHDq3HOFV0SBft22XDTrcjdBmndVm9Xnb_etmkejnmwKUFa1NFR3TRvsGOOt2OEKxNC7ZeL6d_vRxSvVyzuqUJwTpU0TFdtG-w4063IwTr0IKt18vtXy-XVC_PpMXqUjUnVM2-oU46zY4QqksL1f3IT6NrVKlIFJK2Mnlpj-EdHk6sRC43eCXFplp7GC4qUPUiRJUdZu3DYJpUU7zcQWKwffmv-5bEqSSrSbK1JEfj1EI5WhQf1liW1srVoobdVk6T5FFJdpM0JFeqFd9Ii5p0o7wmaUwluU3ShHy8VqW4vtG5pj9HLZa-1XWsYYtFb_ZWX_H_dLvXDZu0WPp217HGLZa-4XVndMub6zYWDzdRCD5Y_x7znT_PD5QfBHeqvD6Xv8VDxV0VaXn53QaxQgaXwT2eY4ZyGyWRyqIN-JnMcb__9DcAAP__EUsjFw==

# UNION ALL and UNION with different ORDER BY types.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) UNION ALL (SELECT x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• union all
│
├── • sort
│   │ order: +x
│   │
│   └── • scan
│         missing stats
│         table: xyz@xyz_pkey
│         spans: FULL SCAN
│
└── • sort
    │ order: +x
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysl19vskgUxu_3U5Bz1WaH4BnAP1y1W93ExGpX3WQ3G9OwMu2aquMCpmLjd3-D2rfKlJNh1IumKD7n4Te_ifAByf9zCKDz11Pvvtu3btrd0Xj0R-_Wuhl1ep2HsbWxfh8OHq1NtrUGw3ZnaP32t5XdWn_2u4O-dd_rkSdub7_-3wCDpYxEP1yIBIJ_AIEBBwYuMPCAgQ8TBqtYTkWSyDg_5WP_hW60gaDGYLZcrdP87QmDqYwFBB-QztK5gADG4b9zMRRhJGKnBgwikYaz-X7MJtvebbLt8-pNZMDgQc7Xi2USWBtmbYHBaBXmR7bDYbJjINfp15QkDV8FBHhSq9uGoLZj-s1GMk5F7Pjnpe7wV2AwWKeBdYelg3lhsF9l8CkS1GeS6TFxC9XQBAoaUfGKo8uxfE2UcSRiEanzJrtv-vWlLVcOP6dW1qdW6MPLUVzYx9fq4xf7nPPBCtqY7CSH246rvZewSrejNvVr7KW6MRR9KpkuFWU3mWBBIy7KbioHc6G9aLabzlFw_YXiRva6tuNp28urdDsuU-Ma9jZMoaA-lUyXimKvCRY04qLYWw7mQnu5mb3nKFz9hXKN7PVsx9e2163S7bhMzWvY2zSFgvpUMl0qir0mWNCIi2JvOZgL7XXN7D1H4ekvlGdkr29ru-tVaXZcpNY13G2ZIkF9JpkeE8VcEyhoREUxtxzLheZ6ZuZ6VR5HhiJZyWUijEbZmLcX0as4XG0i1_FUPMVyuj_3cDjYB-3fiESSHj7Fw0F3-flRksYiXPx8xDxNQjLJO0vC06TDreRpFCej3PJSfjHJNS6lXJ9HRvnlUVyJ8skoXq9AvU5GNcqTFOgN2oQawcotZjXJrFZ5q3oxqWXeiiuG0rJTS6jQQlp35OXXqPaifUeiGCrGI608euXFGkoW7TxZzFPCaOsp-ioxWnskvFdcRVp8TimmEqPNR0L9ppJFu08WU_YRN3dfIcZp9znhvmIFp93nlGItJYx2nxPuq1m0-2QxZSm5ufte_tv9Mpfvz7MIAqgdX_Y3fz5fkH8hfE3yG4jRf_J9nzvOVvnP_0s4TwSDx_BNtEUq4sVsOUvS2RSCNF6L3e6XHwEAAP__awSLvA==

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) UNION (SELECT x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • union
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJycllFv2jAUhd_3K6L71GpGYCcBkqduhUlILXTApE0TqjLidqiQsNiohIr_PiWsS7EbK748VA1Jzjn33s_YLyD-rCGE4fe7m0-jsXMxGM3ms683l87FbHgzvJ47e-fLdHLr7PODM5kOhlPn8w8nv3S-jUeTsfGhw2X1_x4IJGnMx9GGCwh_AgUCDAi4QMADAj4sCGyzdMmFSLPikZfyhVG8h7BDYJVsd7L4ekFgmWYcwheQK7nmEMI8-rXmUx7FPGt3gEDMZbRalzb7_HC1zw_32yeeA4HrdL3bJCJ09sQ5AIHZNiquWu0iymQnQ-eKwuJIIN3Jyk_I6JFDSN8EHA0g7BwJLqPfOGNum5EpGX2bjIOVkKtkKdtU6aLB0FUMqVVXKke_saOnOtbXWBntkjSLecbjM5vF0ZSJNe-Cr2RiVl2YpZnkWZtR1e9jrWFXNaRnhrQ5jBSzYNqs1XYRSwadsotZMk1Tqouma5OyQlgbX_NFY9WXyrGLXzTnNbLmk2AoXtxW20PwwrApeyheGqZUeenZpKymx_C8WPWlcuzheTmv0W0-CRfFi9cqd0lbXlxsyj6Kl4YpVV76Nimr6bl4Xqz6Ujn28byc1-g1n4SH4sVvIWjxsBkDFC2NMqqsBDYZq8l5eFasulI5BnhWApvD0pSLbZoIrhzk3rfqKFYtWpz4ePzIT8dDke6yJb_L0mX57OlyUgqVX8RcyNNd93QxSl5vCZnxaPP_jP1WiRqVWL1SR1ViRiXvTIm-VaKalIuW0urzjFJ-fX1MS-WbW2XTq65RKqhX6qpKPaNSv16Jqkp9dNM1qQAtpdVHzahTA-s9TcsMOzVMkGlaeNx1LTzveo1m4Gmvvsa-pmUmnnbrtVxNy4y8qUZdywy9SUuv0Yw9o_U1BpqWmXvWqdfytF9TM_emGnUtM_cmraDYgx7W6fP9KoYQOv8-rXf-vH6geCF6FMVGOPudPpe683xbbGMP0VpwArfREx9wybPNKik25SWEMtvx4_HD3wAAAP__gtBpeg==

# UNION ALL with conflicting numbers of ORDER BY columns.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) UNION ALL (SELECT x FROM xyz ORDER BY y, z) ORDER BY x
----
distribution: full
vectorized: true
·
• union all
│
├── • sort
│   │ order: +x
│   │
│   └── • scan
│         missing stats
│         table: xyz@xyz_pkey
│         spans: FULL SCAN
│
└── • sort
    │ order: +x
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysl99vokoUx9_vX0HOU5s7BM8A_uCpvdWbmFjtqpvsZmMaVqZdU3VcwFRt_N83qN0qU06GUR9MQPyeL5_5TJQ3SH5PIYDWt4fObbtrXTXbg-HgS-fauhq0Oq27obWy_u_37q3VemP1-s1W3_rvu7W-tr52272uddvp0Bcya3P9cbgCBnMZiW44EwkEPwCBAQcGLjDwgIEPIwaLWI5Fksg4u-Rt94V2tIKgwmAyXyzT7PSIwVjGAoI3SCfpVEAAw_DnVPRFGInYqQCDSKThZLobs1pvblbrzePiRayBwZ2cLmfzJLBWbNcQGAwWYXbCdjiMtgzkMv0YlKThs4AAj5q1mxBUtky_3EDGqYgd_7TXDf4LDHrLNLBusHAwzw32yww-poIlsOgxcXPV0AQKGlHx8qOLsXxMlHEkYhGp80bbT_p1pS0XDj-lVtSnkuvDi1Gc2cfX6uPn-5zywRLaGG4mh9uOq72dsEy9gznVS2ynqjGXEmB0qSgbygQLGnFRNlQxmDMFRrMNdYqC6y8UNxXYtR1PW2Bept5hpWqXELhmygVLgNGloghsggWNuCgCF4M5U2BuJvApCld_oVxTgT3b8bUFdsvUO6xU_RIC1025YAkwulQUgU2woBEXReBiMGcK7JoJfIrC018oz1Rg39bW1ytT7rBOjUvo2zClgiWw6DFR5DWBgkZUFHmLsZwpr2cmr1fm0aQvkoWcJ8JolI1ZexE9i_3dJnIZj8VDLMe7a_eHvV3Q7kQkknT_Ke4P2vP3j5I0FuHs7-PmcRKSSd5JEh4n7f9THkdxMsotLuXnk1zjUsr9eWSUXxzFlSifjOLVEtSrZFStOEmBXqNNqBCs3HxWncxqFLeq5pMa5q24YigtO7WECi2kdUdefI9qL9p3JIqhYjzSyqNXXKymZNHOk8U8JYy2nqKvEqO1R8J7xVWkxeeUYiox2nwk1K8rWbT7ZDFlH3Fz9xVinHafE-4rVnDafU4p1lDCaPc54b6aRbtPFlOWkpu772W_3U9T-fo4iSCAyuFlf_L2_oLsC-Fzkv2BGPySr7vc4XqR_fw_hdNEMLgPX0RTpCKeTeaTJJ2MIUjjpdhu__kTAAD__xe_kFo=

# Only one distinct processor should be used in the single node UNION case.
query T
EXPLAIN (DISTSQL) VALUES (1), (2) UNION VALUES (2), (3)
----
distribution: local
vectorized: true
·
• union
│ estimated row count: 4
│
├── • values
│     size: 1 column, 2 rows
│
└── • values
      size: 1 column, 2 rows
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyskUGL2zAUhO_9FeKdbNCylrcnnbrFezCk3m2dhEIxRVgviYkjuZJMWoL_e5HcJnVISlNWB4NG8jfzRgew31rg8PT5ZfaYFyTK8nJefpzFZPk4WzyVJGIxJVEak0WRPxdHNfXqQwwUlJZYiB1a4F-AQUWhM7pGa7Xx0iFcyOV34AmFRnW983JFodYGgR_ANa5F4LAUbY_2PgEKEp1o2kB8S96TKCX1pldbG0M1UNC9O1GsE2sM7KNtngFPBnqzM3sVZ3bV-WTYK20kGpQTx2q4kC1rrGtU7e7Tabp37GoidpYovaWLT2g7rSyeJfu32e-YHwHlGsd5re5NjS9G1-HuuH0OoCBItG48TcdNrsIR8w4Gxe5Y6J8k9r-k5JyU_pX0MCElU1JFYdXq_ddGAofk17q78Pm9wP8g1taXXW70PmDnPzpf1Uq0Fil8EFvM0KHZNco_ew3cmR6H4c3PAAAA___ybykc

subtest Intersect

# Basic INTERSECT ALL and INTERSECT case -- should return every row.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz) INTERSECT ALL (SELECT y FROM xyz) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • intersect all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl11vo0YUhu_7K9C5StSxYAawDVKlbDeuaskbb21ftKqsFWsmsbWOoQxWQiL_9woSN4ExpxwSkVxE_sDPvMy8j2Z4BPXPFnwY_fl18ml8ZZxdjueL-R-Tc-NsPpqMPi-MzPhtNv1i3GcP58b4ajGazfNPP00mJ6-Yzi5HM-PXv4wMGOyiUF4Ft1KB_zdwYCCAgQ0MHGDgwpJBnEQrqVSU5Jc8Fj8Yh_fgWww2u3if5h8vGayiRIL_COkm3UrwYRF838qZDEKZmBYwCGUabLbFMPfZw8V99vAt_iHzCJ-j7f52p_wizzwO8pc9U8DywCDap89DvJC_Z8Y6UOsy84LD8rBkoNLgRoLPX-UeX4JvHVi76G7n0UUlulsb_YW730VJKBMZlsjL_Jf_d8mJ-_89UOu5TKexySsrt8hi6ZcrBgy28jo9u-DnvySbm3XxChhM96lvFLf2eipebtOu3CYnLdE8SlKZmNytTuXPtQM61QGbTOypOXse5USqq6gXxaawqqtwMo9bySPKE8Cbd5STO2qKnmm_q2C8bfj-B4SvKtavDd-BYrw7xUiLdFSs_wbFyhMrmrdC0Fth90znXSst2oYffED4aqUHteE7qLTortKkRTpWevCGSpcn1m7eCpveCqdnuu9aabtt-OEHhK9WelgbvoNK291VmrRIx0oP31Dp8sQ6zVvh0Fvh9t610E7b6F7n0at19mqjd1Bnp7s6k5boWGfvDXX2KA8SM6niaKdkoyO7VRmqx_NpluGNfFo2Fe2TlfyaRKvi2qe30wJUVDeUKn36Vjy9Ge-Kr0Q-QiKD2_-e95qTBvUkTkRxXs8SVJZbz7KpLK-e5WgsTph4_hpl0UiDehInoioTX2IJKsutZ9lUllfPcjSWqLKs1yy7hLJKjddQNopy6lO5Wh0cFCV4fSwtldtW6T6NhClNRKFKU1mY0lQWprTG6rdVmtNImNJEFKo0lYUpTWVhSmusASrPEFFaQw1bK63VwWvr4YBGwjwkolAPqSzMQyoL81Bjccqhplx5IgozkcpCVSTDMBfJMExGHaZt1iWFuEB01GH4bo35qNdC266bCjkkojAjqSxUSTIMc5IMw6TUYdoJp6mUNhGFSUlloVKSYZiUZBgmpQ7TzjllKfuIlDpM27sbS6nXQtu7m0rpEVGYlFQWKiUZhklJhmFS6jDtuNNUSoeIwqSkslApyTBMSjIMk1KHaYee8kOfhUipwYS2hzeW0jssGVxvo7tvmxB8sJ7_eif-Hf8g_0Fwo8B_hPk6uiu4iyyWCvzrYKskgy_BD3kpU5ncbnYblW5W4KfJXh4OP_0bAAD__wNkH9Q=

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz) INTERSECT (SELECT y FROM xyz) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • intersect
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mV1v4kYYhe_7K9BcJaoRzIxtwFKlbDepipRNtsBFqypaeWGSoCWY2kYbEuW_V5BlHc-Lj_1iCBcRn2eeOR4_ZsizSP6biUBc_P358kP_qnFy3h-Ohn9dnjZOhheXFx9HjVXjj8H1p8bj6um00b8aXQyG62d3vXo9OL8YNH7_p7ESjphHE3MVPphEBP8KKRyhhCO0cIQrHOGJG0cs4mhskiSK12953nygP3kUQdsR0_lima6fvnHEOIqNCJ5FOk1nRgRiFH6dmYEJJyZutYUjJiYNp7PNMI-rp7PH1dOXxTezRvgYzZYP8yTY8AwX4fpus6XEzYsjomWaDZGk4Z0RgXzD1D8XQfvF2Q_LOyiWsrA8Dtb5NEmn83HaklZXZ9IaMPvM11XjPkzud7w_g9IWlGSVlVF5B6VybarirrLg5TyKJyY2k1z0JraQW5W1mTF5FpMqbqomU1mXGZNvM9XpydkL-88wuR-a9HrR0laXo9XCBG9U8-HyUjhiZm7TkzN5-ls8vbvf3BOOuF6mQQPMs2PNU7NW6TCKUxO3NOn118IBu_aAVYrd1dmPUXZQXUXNaNFy2_ZR2MnTs3jcfAGyutMk22kt1WzpyrKV-4L5BwazdetzwDKxyePqllVXRuUfV7fFXdVUW1mbQLfFTdVkKusS6LZOT7V1K99Pt6xVutUt6ZWh23yxqrpFFN8iutlyK-tN7QvWOTCYrbcOBywTiTqu3lh1ZVSd4-qtuKuaKilrE-ituKmaTGVdAr3V6am23tT76Y21Srd6I70y9JYvVle3iOZbxG22vMp60_uCdQ8MZuutywHLRKKPqzdWXRlV97h6K-6qpkrK2gR6K26qJlNZl0BvdXqqrTf9fnpjrdKt3kivDL3li3WrW8TlW8RrVpabuy9W76BYttp6HKxMIu5x1cYqK6PqHVdtxV3V1EhZm0BtxU3VZCrrEqitTk-11ea-n9pYq3SrNtIrQ209zg-PA5MsonliKv3E17aGasp1zWZyZ14PWxIt47H5HEfjzXtfH15vgjZPTEySvr6qXx_059uXkjQ24cPP_zm8TZIwSRUnte0kZSfJt0luLkm-TZLMKKlBFpkgzlKyOEsxuVQPZDG5dKc4SxMuDbM8EEWwcJQEh9FlYikFsphcul2c5TG5dBdkES4Xnj9-cZRPsDxGlMpFSTvKh1Gd4rO6Q6g6MAp01SFddWGUKxmy6cEoCbzlEwNimUqARXqXRKeVJcjNghakk8RhUINcMuhBLhkUISXDVkUmpGAlVyGkQi4YdCGXDMqQSwZtSMmIWvPnEjgAviJh2K1WWN6ImoRhu0ofOJF2hv2KpEgrw4JVbQBGsrBhZa84i7ZPFFtZZdwsqDI6SRwGVcYlgyrjkkGVETJFLkuVVUbASrKgyrhgUGVcMqgyLhlUGSUr2RmBNeu7JIxIFoXlVUZ3DliyygXGoJ1hySKV0cqwY1W3GKxLsrBiFfgOS9yviGIrq4ybBVVGJ4nDoMq4ZFBlXDKoMkpGLkuVVUbBcBZUGRcMqoxLBlXGJYMqo2R4t6TBMvPJ9xVd8tuTBCojxtBYshrs4zqkM40li1RGKtPYsRp8XeyRLKxY7RVnkQuJJoqtrDJuFlQZnSQOgyrjkkGVccmgyigZuSxVVhkFw1lQZVwwqDIuGVQZlwyqjJLh3ZIGK8OnJzneLllheZVRMixZF-3jSGculixSWe_lxhG3s-j7l-lEBKL949bc8Wd7E-sPhHeJCJ7F8D76vskdrRYmEcFtOEuMIz6F38y5SU38MJ1Pk3Q6FkEaL83Lyy__BwAA__9jV3BW

# INTERSECT ALL and INTERSECT with MergeJoiner.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY y) INTERSECT ALL (SELECT y FROM xyz ORDER BY y)
----
distribution: full
vectorized: true
·
• intersect all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEll1vo0YUhu_7K9C5SqRBMHw4MVKlbDeuaskbb21ftKqsFWsmMVpsKIO1Jpb_ewXebgwTTjjIIr6ITAwP78x5H2kOIP-NwIPRX58nH8YP2tX9eL6Y_zm51q7mo8no40LLtd9n00_aPn_WprP70Uz77W8tv9bGD4vRbF7c8GEyeeNmYLCNA_Hgb4QE7x_gwMACBjYwcICBC0sGSRqvhJRxWtxyKB8YB3vwTAbhNtllxb-XDFZxKsA7QBZmkQAPFv7XSMyEH4jUMIFBIDI_jMrX7PPnu33-_CX5JnJg8DGOdput9LTiYp74xVfdsGB5ZBDvsh-veCF_zbW1L9dV5h2H5XHJQGb-kwCPn-Ue34NnHlm36G7v0a1adLcx-gt3t43TQKQiqJCXxZNv3fLK-v_w5Xousmli8NrkFnkivGrFgEEkHrOrO379axo-rctvwGC6yzytXNr5Vrws064tkzePqNMiHmI9Tgzu1nfk1TBOPUx103n7vnByXwxLN-yLlp13DT94h_D1ug8aw_dQd95f3atDstoPyaIPydYN56INs7qGv3mH8PWG3TSG76FhVn8Nqw7Jbj8kmz4kRzfcizbM7hr-9h3C1xt22xi-h4bZ_TWsOiSn_ZAc-pBc_aL9crpGH_Yevd6uYWP0Htrl9Ncuh3JmnwmZxFspWh33zNqrdF6sWgRP4rSLMt6lK_E5jVflvafLaQkqmxQImZ1-tU4X4235k1W8IRX-5ue5vT1p0EziRNSwGWURURxZoE1luc0sR2Fxwr7zc5RJIw2aSZyIGjajLCKKIwu0qSy3meUoLKvOMs9ZdjPKVVA2iuLVnTfRGTpdLRzQSJiFRBRmIRGFWkhlYRYqLLerhZxGwiwkojALiSjUQioLs1BhDTpbqKBuuqpzQyNh6hBRmDpEFKoOlYWpo7Buu6pj0UiYOkQUpg4RhapDZWHqKKxhZ3UUFO98-LslojB5qCzMHioL1YcMw_xRYZ1PgDYRhRlEZWEKUVmoQ2QYJpEK634MVFnKObCtRUMiCrOIysIsorJQi8gwzCIVRjk5V0tBRGEWUVmYRVQWahEZhlmkwpQjYWuLnOOSwWMUf_8SBuCB-eOjv_Ln_w8UD_hPErwDzNfx95K7yBMhwXv0IykYfPK_iXuRiXQTbkOZhSvwsnQnjsdf_gsAAP__wUHttA==

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY y) INTERSECT (SELECT y FROM xyz ORDER BY y)
----
distribution: full
vectorized: true
·
• intersect
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mF1v4kYbhs_fX2E9RxvJCGZs82HplbLdpCpSNtkCB62qaOWFSYKWYGobbUiU_15BunU8T3zbD4ZwEPFhbl9zh7nsmSdK_15QSOd_fLn4OLx0PpwNx5Px7xcnzofx-cX5p4mzcX4dXX12HjaPztXo7Hzk_PKnszlxhpeT89F4ewA-kFxaxjNzGd2blMK_SJFLmlzyyCWfXAro2qVVEk9NmsbJ9pCn3ReGswcKOy7Nl6t1tn372qVpnBgKnyibZwtDIU2ibwszMtHMJO0OuTQzWTRf7E7zsHk8fdg8fl19Nxty6VO8WN8v09DZvhivou3TVlvT9bNL8TrLT5Fm0a2hUL1iGp5R2Hl298MKDoqlLaxAgnU2T7P5cpq1ldXVqbJOmH_n28a5i9K7N47PoTwLSonKyqmCg1L5NlV5V3nwehknM5OYWSF6F1vKravazJkCi0mXN9WQqarLnKlrMzXpyd0L-7covRub7GrV9qwuJ5uVCV-p5uPFBbm0MDfZh1N18v9kfnu3e0YuXa2z0AHj7Fnj9A7c_WXcildtL7AbeROmb8MUS1f1_aLEfmnrVturLT61L1j3wGC2-roSsFwy6rjqE9WVU3WPq77yrhpqpqpNoL7yphoyVXUJ1Nekp8bqU--nvmL3uv6k1vJJ7bXafm3b6H3BegcGs23Tk4Dl81of1zaiunKq3nFtU95Vw5ld1SawTXlTDZmqugS2adJTY9vo97NNsXuv_qT25JPab7WD2rbx9gXrHxjMtk1fApbPa--4thHVlVP1j2ub8q4azuyqNoFtyptqyFTVJbBNk54a28Z7P9sUu_frT2pfPqmDVm3X-PtiDQ6KZZtmIMHK57R_XNOIysqpBsc1TXlXDWd1VZvANOVNNWSq6hKYpklPjU3jv59pfMk258ikq3iZmlrbQx3rVC21HbWZ3ZqXFtN4nUzNlySe7o59eXm1C9q9MTNp9vKp9_JiuPz5UZolJrr_b-_4dZKCSbo8qWMnaTtJvU7yC0nqdZISRikNstgAK7IG5VlayKW7IEvI5XnlWR7j8mBWAKIYFo5SAMsXYukOyBJy6V55ViDk8sBPNWBcPpw_4BfRZViBIEoXopQd1YVRoKweo-ph1XQFhujDKKXKo7p21ABHdcqjWFeKybS2uKRZ0FxsjFVhSF1SMuguKRmUFydjl6Da9uJgOAvqSwoG_SUlgwKTkkGDcTJ2JSrOJRDW1SyMuRWFFS3msTAsV6QxXhm2q-qXG6PHsrBeVa88ixfG_FrbPtIsaB8-yIowZB8pGbSPlAzah5Oxi1Jt-3AwnAXtIwWD9pGSQftIyaB9OBm-kmsF7OOze2q8LrLCivbhN-h4aYTswyrT2LE6KDdGn2VhxWq_PIsZVjPD1raPNAvahw-yIgzZR0oG7SMlg_bhZOyqVNs-HAxnQftIwaB9pGTQPlIyaB9Ohq_kug_sw26kNF4qWWFF-zAvarxYQvbhlWHHemCXZ8DWzhVbT2ARx3Tt4dtYZB9pFrQPH2RFGLKPlAzaR0oG7cPJ8B4Usg8Hq9hnQ_aRgkH7SMmgfaRk0D6cDF_JPfAP6DKVeXixZIUV7cPJ8GoJ2cd_vnbpZhH_-DqfUUidfx-tN_78fND2C9FtSuETje_iH7vcyWZlUgpvokVqXPocfTdnJjPJ_Xw5T7P5lMIsWZvn5__9EwAA__-h80Bm

# INTERSECT ALL and INTERSECT with no overlap.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz WHERE x < 2) INTERSECT ALL (SELECT x FROM xyz WHERE x >= 2) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect all
    │
    ├── • filter
    │   │ filter: x < 2
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 2
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEmNtv2lgQxt_3r7DmKdEamXN8ASxVSrehKlIKXUDaXe2iyoWTgEowaxsVEvG_V0C52MMZPA4heai42D8P38z3Te1niP8fgw_1v7_cvW80javbRqfb-fPu2rjq1O_qH7rG3PjYbn025osn469P9XbdmBv_zcplu2_Ia6PR7NbbndVh7-_uTp6i3q3OabVv623jj3-MOZgwCQeqGTyqGPx_QYAJEkywwQQHTHChZ8I0CvsqjsNodcjz-oTGYA5-2YTRZDpLVh_3TOiHkQL_GZJRMlbgQzf4NlZtFQxUZJXBhIFKgtF4fZn54ulmvnj6Ov2uFmDCh3A8e5zE_rqezjRYvSxZEnpLE8JZsr9EnAQPCnxxUFPjFvzy0sxf1sfROFGRiiw3XdPmc9-4EXupfN9vNLvVTCF71reFMQziYRp0I6C33BcrM8W6nGIPNRTnFdHO1CWKqShOyNg_j4pOtlq9jHvwbBJGAxWpQQrdW5156pAjP_lTEA87KmlNLZnpRHcxVX7aiWDCWN0nVzfi-l00ehiuX4EJrVmy0kbbFTfzOyWrK50wSlRkSTer5e_aC3rZC-YR9phmv65ypKpmWAqnll3OduFoPZVMPXZaAMHwC9sulixZdu7UEZzCdn7x3iZ1vMIqnltGlDvFdBQnhHyt3NELeYHcEZfLHVZXtrnjvSB30sLK_BMq-QNqlywnt88lp7DdfFbexueVoiqKc8uIfF5MR3FCyNfyuV7IC_hcXs7nrK5sfV55gc_Twtr5J9TmD6hTstzcPrc5he3ms_o2Pq8WVVGcW0bk82I6ihNCvpbP9UJewOf25XzO6srW59UX-DwtrJN_Qh3-gLql3C53OGXtprP2Ni6vFdVQnFdE5PFiKooTMr6Wx_UyXsDjzuU8zurK1uO1F3i8xnk40VbxNJzEKtdjgHLmUiWxklkNHtSmbXE4i_rqSxT218du3rbWoPUHAxUnm2_F5k1jsv0qTiIVPO6eGx6SRJYkDklOiiQPSZvHUflRQuhZksuq6Fk2kyVtPcvhsmp6lotYkmyirW8iItmMJopUE9E80KhME1MsyWVV9Cybyco0McVyuKyanuUilkM20dU30UMol0R5-qo8NBAePVqcgKiQqKqeJLKkauGo8XgoMmq4LCpqmCwyargsKmoQq0bvizIxpigB0e7JHTZoIk6wyLRhw6i44cLIvGHDqMDBMLSC0r2URC8xjN5BVObgwUCxmi7M0RcmEQvFau6sqDBZZFiwYVRacGFkXLBhVF5gGL2LhKfvJWahZZQ7MPBc0CwyMNgwKjC4MDIw2DAqMDCM3uCCWOEehqGtlDsw8GDQW0kSW8lG_5fmbKV0YFSZLDIw2DAqMLgwMjDYMCowMIzeSpLYSpiFllLuwMBzQbPIwGDDqMDgwsjAYMOowMAwepFLYpF7GEbfIFGBgQeD3kqS2EoOYnG2UjowakwWGRhsGBUYXBgZGGwYFRgYRm8lSWwlzOLcWaYDA88F69YyHRhsGBUYXBgZGGwYFRgYRi9ym7q9RDCbfrZJBUZt2TPhfhz--DoagA_lX3-lI_9s_2B1QvAQg_8MnWH4Y83tLqYqBv8-GMfKhM_Bd3WrEhU9jiajOBn1wU-imVouf_sZAAD__3IF2_Y=

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz WHERE x < 2) INTERSECT (SELECT x FROM xyz WHERE x >= 2) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect
    │
    ├── • filter
    │   │ filter: x < 2
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 2
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy82Vtv2loeBfD3-RTWfmo1RrAv5mKpUjoNVZHSpANIM0fnRBWF3QSVYI5tVGiU734EaWLwP17m7w3JQ5ULWSyvwG-n4V4kf89EKLr__3LxvnfpvTnvDYaD_1689d4MuhfdD0Nv5X3sX332Vutf3v8-dftdb-X9tWw09NhTb73e5bDbH2xuVnZz-25z-6v-ebfv_ecPbyV8MY8m9nJ0ZxMR_imk8IUSvtDCF0b4IhDXvljE0dgmSRRvbnK__YbeZCXChi-m88Uy3Xz62hfjKLYivBfpNJ1ZEYrh6NvM9u1oYuN6Q_hiYtPRdLa9m9X619lq_evr4oddC198iGbLu3kSbvsMFqPNu7W6EtcPvoiWaXYXSTq6sSKUO5165yJsPPiH1_o4naU2tnE92O_0-PnQO5PZVGEY9i6H7cIiKlck4BTZ3UcedyCd6yWrLSRLJhqXL2TyTVgTnU-TdDofp3WV2-dM5u4x-55va-92lNy-cPusVZBrpVj7ZK2Co7Zq5lsVb5UFL-dRPLGxnexFb2MLe-uyNbNOrVwnXbyUY6eyLbNO7Xwnl538SrU_jZLbgU2vFnWT23K4XthwR-T3FxfCFzP7PX1zJt--i6c3t9v3hC-ulunmuVR4nZ3cdRrWo3QQxamN64bs-u9iVxv5ezxk2ZdG-303L9S6jGrRoh408j-GlwvlpQ_2J5AMYdnA1lWtrg8-gySn2LOwzeOfQc3KCx17InIKVdtIloxU5RRijZR5L097CrH2yVo1T3sKFW_lKH7ZmuAUKl7KsVPZluAUctnJ-RSSr3cKsR6lT6cQ2ZVzCu0vqw4nTfFF07W6ORh9xSn2DFrr-Oi3qi4kjz0RQb_aRrJkpCros0bKeFWnRZ-1T9aqdVr0i7dyBLZsTYB-8VKOncq2BOi77OSMvno99FmP0if0ya4c9PeX1YeTpvmimVo9OBh9zSn2DFr7-Oi3qy4kjz0RQb_aRrJkpCros0bKeNWnRZ-1T9aqfVr0i7dyBLZsTYB-8VKOncq2BOi77OSMvn499FmP0if0ya4c9PeXNYeTZviiBbWDyTecWs-cdY5PfqfqPvK4AxHwqy0kSyaqAj5rooxWc1rwWftkrTqnBb94K0dcy9YE4Bcv5dipbEsAvstOzuCb1wOf9Sh9Ap_sygG_w3lJo2-TRTRP7EGvHeTvqiY3O9vJjX38uSXRMh7bL3E03t728cOrbdD2ExObpI9flY8f9OZPX0rS2I7unl953k2SMCkoTnp8YXQ3SsEoXRxFkjRMMqAUuT6Tj5K7Uc29KLkbpZhRsgWyyBXiLAWyNLOXRlnMXgZkGdIrgFkoitTCUbJdnBUwaymUxeylQVaT2cugLNKrCZ9AIKpFarUYUWovSuaj2jCqU_y0bpNWHQxgo_gK22QsiTUNWJxiT6UCdpEsDKpsgqwmCcOmSoAqzSJK7GehU4NeJX7cI6G5WZBoepUlUCBXuc0g0txmUGnajFhxMNO0GM6CTnOLQai5zaDU3GaQatoMAys7AGtFwjCxubB9rjUJw8iqBgCbbKZKfmVFYpPNFFZWAWXJZAorq5CyLRKGlVVAWZqFlVVIWXqV1ZXlZkFl6VU6KMttBpXlNoPK0mbVlaXFHJTlFoPKcptBZbnNoLK0GVZWIWUNCcPKKqQs_V8zVlYjZclm2kFZspnGymqgLDlLdMkfB5CybRKGldVAWZqFldVIWXqV1ZXlZkFl6VU6KMttBpXlNoPK0mbVlaXFHJTlFoPKcptBZbnNoLK0GVZWI2XJL3kaK6uRstQyrKxBypLNjIOyZDODlTVAWXIwGaysQcp2SFjJX2GBsjQLK2uQsvQqqyvLzYLK0qt0UJbbDCrLbQaVpc2qK0uLOSjLLQaV5TaDynKbQWVpM6ysQcpSfrCyBilLm2FlA6Qs2SxwULbzcO2L77Po59fpRISi8fut9sI_T29i8w2jm0SE92JwG_3c5g7XC5uI8PtollhffB79sOc2tfHddD5N0ulYhGm8tA8P__onAAD__321LDo=

# INTERSECT ALL and INTERSECT with some overlap.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz WHERE x < 3) INTERSECT ALL (SELECT y FROM xyz WHERE x >= 1) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • intersect all
    │
    ├── • filter
    │   │ filter: x < 3
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 1
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEmG9v2kgQh9_fp7DmVaIzMrtrG7BUKb2Gqkgp9ADp7nSHKhc2AZVgzjYqJOK7V0D5Yw8ePE4geVEVAo-H38w-E_wM0f9j8KD-95e7942mcXXb6HQ7f95dG1ed-l39Q9dYGB_brc_GfPFk_PWp3q4bc-O_Wbms-oa6NhrNbr3dWb3s_d3dybfod4a4Nlrt23rb-OMfYwEmTIKBbvqPOgLvXxBgggQTFJhggwkO9EyYhkFfR1EQrl7yvH5DYzAHr2zCaDKdxauneyb0g1CD9wzxKB5r8KDrfxvrtvYHOrTKYMJAx_5ovL7MfPF0M188fZ1-16sSPgTj2eMk8oy5uS6pM_VXj0qWhN7ShGAW768Sxf6DBk8clNW4Ba-8NPNX9nE0jnWoQ8tJlrV53jNuxD4tz_MazW4VTGjNYs-4SZe0p35bGEM_GiaRNwJ6y33ZMlW2wyn7MFDx6omqVGmiWKTiRKZ9Q71upHa67uxM9-DZJAgHOtSDBLq3eueplxz58J_8aNjRcWtqyVRbuoup9pJnFEwY6_v46kZcvwtHD8P1_3ZZiMz-OKnPKVn96QRhrENLOuksf8-8oJu-YJ5gj2X26ypHqmoGpWBqqXK6C0frqaTqUckABOPwFDk7lixZKrePBKe23eFx39pHbuFIz5ApMlKxUMWJVM9vpOxUL2AkcTkjsfqzNZL7AiMlg5X5x1UWmlZVsuzcBpCc2nbDWnlrA1SKRirOkCkyQLFQxYlUz2-A7FQvYAB5OQOw-rM1QOUFBkgGq_KPqyo0rXbJcnIbQHFq2w1r9a0NUC0aqThDpsgAxUIVJ1I9vwGyU72AAdTlDMDqz9YA1RcYIBmsnX9c7ULT6pRyn3-bU9luVGtvff5rRQMVr54oOv3FIhUnMj3_6c_O9AKn377c6Wf1Z3v6ay84_TXOTZC2jqbBJNK5bjeUU5cqiVXMevCgN22LglnY11_CoL9-7eZhaw1aPzHQUbz5rdg8aEy2v4riUPuPu9uWhySRJolDkp0gyUPS5rZXfpQQ2SzJZVWyWYrJkiqbZXNZtWyWg1iSbKLKbiIiKUYTRaKJaB5oVKqJCZbksirZLMVkpZqYYNlcVi2b5SCWTTbRyW6ii1AOiXKzq3LRQLj0aHEEUSFR1WySSJOqhVXj8lCkargsSjVMFqkaLotSDWLV6H1RJsYUGRDtntyyQRNxgkXahg2jdMOFkb5hwyjhYBhaQcleSqKXGEbvIMo5eDCQVpOF2dmFScRCWs3tigqTRcqCDaNswYWRumDDKF9gGL2LhJvdS8xCyyi3MPBc0CxSGGwYJQwujBQGG0YJA8PoDS6IFe5iGNpKuYWBB4PeSpLYSgr9Lc3ZSklhVJksUhhsGCUMLowUBhtGCQPD6K0kia2EWWgp5RYGnguaRQqDDaOEwYWRwmDDKGFgGL3IJbHIXQyjvyBRwsCDQW8lSWwlG7E4WykpjBqTRQqDDaOEwYWRwmDDKGFgGL2VJLGVMIvzzTIpDDwXrK-WSWGwYZQwuDBSGGwYJQwMoxe5or5eIpii721Swqgteybcj4MfX0cD8KD866d05J_tD6ze4D9E4D1DZxj8WHO7i6mOwLv3x5E24bP_Xd_qWIePo8koikd98OJwppfL334GAAD___pP_DM=

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz WHERE x < 3) INTERSECT (SELECT y FROM xyz WHERE x >= 1) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • intersect
    │
    ├── • filter
    │   │ filter: x < 3
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 1
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mV1v2tgahe_Pr7D2VaNjBPvDfFiqlJ6Gqkhp0gNI54xmoorCboJKMGMbNTTKfx9Bmhj8xsu83nVyMZoksLz2E_OsNNyL5O-FCEX__5_P3w0uvDdng9F49N_zE-_NqH_efz_2Nt6H4eUn727z0_vfx_6w7915f61bLT319Ik3uBj3h6Ptw8oebt968sS7HJ71h95__vA2whfLaGYvJrc2EeGfQgpfKOELLXxhhC8CceWLVRxNbZJE8fYh97snDGZ3Imz5Yr5crdPtl698MY1iK8J7kc7ThRWhGE--LuzQTmY2braEL2Y2ncwXu8vcbX6e3m1-fll9t9sK76PF-naZhN6dv6s0Wk22nzWaSlw9-CJap9lVknRybUUo92oNzkTYevCPb_ZhvkhtbONmcFjr8euhdyozWmEYDi7GXeGLy3UaeqfFlVSuUsCptA9L_nZaOldNVsMlS3hNPX08LpPvxOJ1Nk_S-XKaNlUO1qnMXTF7zteNdzNJbl54fNYqyLVSLFJZq-C3tmrnWxWzyoLXyyie2djODqJ3sYW9dRnNrFMn10kXk3LsVMYy69TNd3Lh5Feq_XGS3IxserlqmhzL8WZlwz1Xvzs_F75Y2G_pm1N58jaeX9_s_u_5tVN8zl7unIZ1l46iOLVx0xCu_y7WbSt_xWPIvgTt12VeqHURNaJVM2jlfwwvF8oPQHCIQDJ0W8W2TdVo6qPXSXK6Peu2Xec6tSvjqoEX2adqwGQJMbd9YhHLlkDWu08sUlmrdr37VMzKcQvKaIJ9Kibl2KmMJdgnF07O-yRfb59Yd-nTPhGunH06JKuO95uqpDfdaJqj50Bxuj3brVPnHHSq4pI18CJzUA2YLCHmNgcsYpl4Vb1zwCKVterUOwfFrBzVW0YTzEExKcdOZSzBHLhwcp4D9XpzwLpLn-aAcOXMwSFZfbzfdCW9mUYzOHoONKfbs926dc5BtyouWQMvMgfVgMkSYm5zwCKWiVfXOwcsUlmrbr1zUMzKUb1lNMEcFJNy7FTGEsyBCyfnOdCvNwesu_RpDghXzhwckjXH-81U0lvQOHoMDKfZs9t6dY5Bryos-dtpkSmohkuW8HKbAhavTLqm3ilgkcpa9eqdgmJWjtotowmmoJiUY6cylmAKXDg5T4F5vSlg3aVPU0C4cqagx3nrZGiTVbRM7FHvUeQv1ZBbznZ2bR9_bkm0jqf2cxxNd499_PRyF7T7wswm6eN35eMng-XTt5I0tpPb5ze-95MkTAqKkx7fgN2PUjBKF0eRJA2TDChFzmfyUXI_qn0QJfejFDNKdkAWOSHOUiBLM3tplMXsZUCWIb0CmIWiSC0cJbvFWQGzlkJZzF4aZLWZvQzKIr3a8AUEojqkVocRpQ6iZD6qC6N6xS_rLmnVwwJsFZ-wS2BJbNOApVPsU6mAu0gWFqpsg6w2CcNOlUCqNItY4jALrQY9Jb7vkaG5WVDR9JQlokBe5TaDkuY2g5amzYgrjtY0LYazoKe5xaCouc2gqbnNoKppMyxY2QOyViQMKzYXdqhrTcKwZFULCJswUyW_siJjE2YKW1YByxJkCltWIct2SBi2rAKWpVnYsgpZlp6yumW5WdCy9JQOluU2g5blNoOWpc2qW5YWc7Astxi0LLcZtCy3GbQsbYYtq5BlDQnDllXIsvRfzdiyGlmWMNMOliXMNLasBpYlW6JL_jiALNslYdiyGliWZmHLamRZesrqluVmQcvSUzpYltsMWpbbDFqWNqtuWVrMwbLcYtCy3GbQstxm0LK0GbasRpYlv-RpbFmNLEtdhi1rkGUJM-NgWcLMYMsaYFkyTAZb1iDL9khYyV9hgWVpFrasQZalp6xuWW4WtCw9pYNluc2gZbnNoGVps-qWpcUcLMstBi3LbQYty20GLUubYcsaZFmqH2xZgyxLm2HLBsiyhFngYNnew5Uvvi2iH1_mMxGK1q-Pxgv_efoQ2ydMrhMR3ovRTfRjlzverGwiwm-TRWJ98Wny3Z7Z1Ma38-U8SedTEabx2j48_OufAAAA__9gm0x3

# INTERSECT ALL and INTERSECT with swapped column orders.
query T
EXPLAIN (DISTSQL) SELECT x, y FROM xyz INTERSECT ALL SELECT y, x from xyz
----
distribution: full
vectorized: true
·
• intersect all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl1tv4jgUx9_3U0TnaUZyRJwLLZFWYjTtapGYdrbwsNIKjTLEhWgCycZBQ4r47quEXghuzuZ4uD1UMjg_--9zfqqzAflvDD7c_v11-GlwZ3y4GYzGo7-GH43R7fD289hYM6Mw_ni4_2KsiydjcDe-fRiV338aDl-mFMxYv04BBsskFHfBQkjw_wEODGxg4AADFxh4MGGQZslUSJlk5ZRN9cAgXINvMYiW6Sovv54wmCaZAH8DeZTHAnwYB99j8SCCUGQdCxiEIg-iuFpmXTz118XTt_SHKIDB5yReLZbSr7YPDEZpUI7MTrmV-1XuG32b9TlMtgySVf685NtK3wtjHsh5fY0-Z30bJtsJA5kHMwE-34syuAHf2jK9NJ5uml8MYB8E8BoDvKFXyyQLRSbCGnxSPvl_U945hT8DOR-J_D7t8IOSjotU-PWOAwaxeMw_VEE-_p5Fs_nL4LWuzxn3j-Utr3OQlzdXTCvNXWImaYd7h0fz7mbcw83UT5-3bx-u0z4d2-w4J9WB6-bp6uc5shDdxghnEIJfQIh6zez2NbO1auaYHfekPWjr5rnSz3PkHrxqjHCGHrQv0IP1mjnta-Zo1cw1q_-_p-tBRzfPtX6eI_fgdWOEM_Sgc4EerNfMbV8zV6tmnnnSDnR10_R00xy5_3qNAc7Qf-4F-s-lvEo8CJkmSylaXTutg6VMXsYX4UzsjlMmq2wqvmbJtJq7G95XoKqxQiHz3a_2bjBYVj_Z5QqZCBavLxLtSd1mEieies0om4jiSECHyvKaWa7C4oRz5_soi0bqNpM4EdVrRtlEFEcCOlSW18xyFZZ9yLL2WU4zylNQDori9ZO30Bq6uhZ2aSTMQiIKs5CIQi2ksjALFZanayGnkTALiSjMQiIKtZDKwixUWF1tCxXUla46VzQSpg4RhalDRKHqUFmYOgrrWlcdm0bC1CGiMHWIKFQdKgtTR2H1tNVRUFz78ndNRGHyUFmYPVQWqg8ZhvmjwrRvgA4RhRlEZWEKUVmoQ2QYJpEK078GqizlHtjWoh4RhVlEZWEWUVmoRWQYZpEKo9yc601BRGEWUVmYRVQWahEZhlmkwpQrYWuL3O2EwWOc_PwWheCD9fwx3_nz8oHygWAmwd_AaJ78rLjjIhUS_McgloLBl-CHuBG5yBbRMpJ5NAU_z1Ziu_3tvwAAAP__128PNA==

query T
EXPLAIN (DISTSQL) SELECT x, y FROM xyz INTERSECT SELECT y, x from xyz
----
distribution: full
vectorized: true
·
• intersect
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEmFFv2kgbhe-_X4Heq1YygpmxDVj6pFRNVouUJt3AxUqrqHJhkqASzNpGhUT57ytIE2O_mcOMvUtyEckYHz9zzDz2-JGyv-cU0dmfX88_DS9aH06Ho_Hoj_OPrdHZ-dnncWvttTat364uv7TWm4fW8GJ8djXafv5r98ZrrV93k0eLZKov4nudUfQXCfJIkkeKPPLJo4CuPVqmyURnWZJuv_K4O2A4XVPU9Wi2WK7y7cfXHk2SVFP0SPksn2uKaBx_n-srHU912umSR1Odx7P57jTrzcPJevPwbflDb8ijz8l8db_Ioh06eTRaxtutdmeLcrnKo9aJ9E4EXT95lKzy4pRZHt9qisQe4_CUou6TVw8zqItpIpMVssCF7HSW5bPFJO-ISn0nwjupnrM47PumdRdnd28fUqCpCppwaq1gC_4DNr_KZu6tyF4tknSqUz0tpe9ijfTSotkCK6hgSXNlDbEsSi2wwipWk7a8WuS_x9ndSOeXy46qNDreLHW0Z6FP5-fk0Vzf5B92o_r4_3R2e_ey8Trf4YB7lQGrf_k6XCTtZNlRQbWaN2H6VZhy-8LePqKOfTqy3VH1NCnqgob1QW1FGbqwFTISxxClU28FW3gMUZp7a2gki2aBKM2VNcSyKBWIsklbjUUp3kGU5esg7ae8rDXlVbvj13OTrAvaqw9q66aeC1sx_-Ux3OTUW8HWO4abzL01lIBFs8BN5soaYlmUCtzUpK3GbpLv4KbydVD2U17VmvJ-e7fcq-EmVRe0Xx_U1k19F7Zi_qtjuMmpt4Ktfww3mXtrKAGLZoGbzJU1xLIoFbipSVuN3aTewU3l6-DbT3m_1pQP2vXM5NfFHNTFtPXSwIWsmPv-Mbzk1FrBNjiGl8y9NRSARbPAS-bKGmJZlAq81KStxl7y38FLvss72yudLZNFpq1ea3Urp2qL7fD19FY_15klq3Siv6bJZPfd583LXdDug6nO8ue96nljuHjZleWpju9fX4fvJwmYJM1J3WqSrCaJ_SS_lCT2k4RjlJAgiw3wQNbAnCUduWQIshy5lDJnKcalYFYAohgWjhIAy3fEkl2Q5cgle-aswJFLgZ9qwLh8OH_ALyJkWIFDlCxFiWpUCKNAWT1G1cOqCR0M0YdRQpijwmrUAEd1zVGsK8Fkai0u1yxoLjbGQ2FIXa5k0F2uZFBenIzdgqztxcFwFtSXKxj0lysZFJgrGTQYJ2N3ovJcAmGhZGHMrSisbDHFwrBckcZ4Zdiuom82Ro9lYb2KnjmLF8b8am0f1yxoHz7IA2HIPq5k0D6uZNA-nIzdlKztw8FwFrSPKxi0jysZtI8rGbQPJ8N3cimAfXz2TI3XRZWwsn34AzpeGiH7sMokdqwMzMbosyysWOmbs5hhJTOstX1cs6B9-CAPhCH7uJJB-7iSQftwMnZXsrYPB8NZ0D6uYNA-rmTQPq5k0D6cDN_JZR_Yhz1ISbxUqoSV7cO8KPFiCdmHV4Ydq8BbngFbOx949QQWcUzXCj_GIvu4ZkH78EEeCEP2cSWD9nElg_bhZPgdFLIPBzvwng3ZxxUM2seVDNrHlQzah5PhO7kCFyBkKlN4sVQJK9uHk-HVErKP_3Tt0c08-fltNqWIur_-2m_8e_mj7QHxbUbRI43ukp-73PFmqTOKbuJ5pj36Ev_QpzrX6f1sMcvy2YSiPF3pp6f__RMAAP__YxBuLw==

# INTERSECT ALL and INTERSECT with different ORDER BY types.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) INTERSECT ALL (SELECT x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l99u4kYUh-_7FNa5StRBeMY2YEuVst1QFYkNW-CiVYVWXjwJaAl2baNgIt69shOa2INPfSb8uYggDN_MOfP7NONnSP5ZgQf9P78OPw3ujKvbwWQ6-WN4bVxN-sP-56mxNX4bj74Y22xnjMa3_bHx619Gdm0M7qb98SQf8Gk4RAfvrt_eb4HBOgzknf8oE_D-Bg4MBDCwgIENDByYMYjicC6TJIzzIc_FDwbBFjyTwXIdbdL83zMG8zCW4D1DukxXEjyY-t9Xciz9QMZtExgEMvWXq2Kabba72Wa7b9EPmQGDz-Fq87hOPGPLjB0wmER-_qnVzpcy2qSeccNhtmcQbtLX-d6m-Z4ZCz9ZlCcoxs8YJKn_IMHj74oY3IJn7pleHU7jOrJz1CEqdTi1dbxxN-swDmQsgxJ5lv_y_4YcacbvfrKYyHQUtXllT6dZJL1yDoHBSt6nVzf8-pd4-bAo3tW24q1Mq1ImJ-3XJIxTGbe5U23lz7UT2tUJmzT2WM9eZzmyqruwFUZtYVZ34eh6nMp6RLkBvHlguY54bdFqW2dSj-tW0tFR75SVVOXr1FZyAfn45eQj7dhBvs4H5Cs3VjSPiNAKu9Vq22cKu9CtpKsV9hNWUg17t7aSC4RdXC7spB07hL37gbCXG2s1j4ilFXa7VdxhzhF2S7eSnlbYT1hJNey92kouEHbrcmEn7dgh7L0PhL3cWLt5RGytsDutM0Xd1q3D1Yr6yeqoBt2treMCQbcvF3TSfh2C7n4g6C7lgWUskyhcJ7LRo4FZmarF8zbL4EG-bFsSbuK5_BqH82Lsy8dRASpyHMgkfflWvHwYrIuvRD5DLP3H_54rm5O69SRORHFezxJUllPPsqgst55lKyxOaDx_jzJppG49iRNRlcaXWILKcupZFpXl1rNshSWqLPM9yyqhzFLiFZSFouz6VTlKHGwUJXj9spRVObpKd2gkTGkiClWaysKUprIwpRVWR1dpTiNhShNRqNJUFqY0lYUprbC6qDw9RGkF1dNWWomDq-thl0bCPCSiUA-pLMxDKgvzUGFxyqWmHHkiCjORykJVJMMwF8kwTEYVphzWJYW4QHRUYfhpjfmoxkI5rpsK2SOiMCOpLFRJMgxzkgzDpFRhyg2nqZQWEYVJSWWhUpJhmJRkGCalClPuOWUpO4iUKkw5uxtLqcZCObubSukSUZiUVBYqJRmGSUmGYVKqMOW601RKm4jCpKSyUCnJMExKMgyTUoUpl57yQ5-JSKnAhHKGN5bS3c8Y3K_Cp2_LADwwX1-tI38OL8h_4D8k4D3DZBE-FdxpFskEvHt_lUgGX_wf8lamMn5crpdJupyDl8Ybud__9G8AAAD__6RkRd0=

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) INTERSECT (SELECT x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mV9v4kYUxd_7Kaz7tFGNYGaMAUuVdrtJ1UjZZAs8tKqilRcmCVqCqW20kCjfvYIsdfCNj33tEh4i_pgzPx-Pf2acR0r-mVNAZ39-vvhwfum8Oz0fjUd_XJw470ZnF2cfx87a-W149clZbx6cq-Hp2dD59S9nc-KcX47PhqPtBmjDh5Ps-ZpcWkRTexne24SCv0mRS5pcMuSSRy516dqlZRxNbJJE8XaTx90XzqdrCjouzRbLVbp9-9qlSRRbCh4pnaVzSwGNw69zO7Th1MbtDrk0tWk4m--GWW8e3q83D1-W3-yGXPoYzVf3iyRw1q7zQC6NluH2Vau9RblapYHzXtH1k0vRKs3GS9Lw1lKgXgCen1LQeXLrMXYrM26kjDrH2JUwns6SdLaYpG2Va5ENmH3n68a5C5O7V7bPoEwOSomay6i6_yuVl6cq7ioLXi2ieGpjOz2I3sUWcuuyNjOmbo5JFzfVkKmsy4zJzzM16cmthf17mNyNbHq1bJtcl-PN0gYvfPTh4oJcmtub9N17dfJLPLu92z2rcOr0cvtpRLN0FMWpjduG9fpz4YD9_IBVin2tsx-jvEJ1GbWiZdvr5I_CqzyDHI93WICqLjhVR8Jt3WqbGhpWdSn9OhquSpkXsS-hzJSnjitiUXcZlX9cERd31VB6ZW0CERc31ZCprEsg4iY9NRaxejsRi2bpXsSsV4GID4vV1ZWia4nPtNpeDfHpupS9WuKrSJkXX09CmSlGH1d8ou4yqt5xxVfcVUPJlLUJxFfcVEOmsi6B-Jr01Fh8-u3EJ5qle_GxXgXiOyzWVFeKqSU-r7VbC0vFZ-pS9muJryJlXnx9CWWmGHNc8Ym6y6j6xxVfcVcNJVPWJhBfcVMNmcq6BOJr0lNj8Zm3E59olu7Fx3oViO-wWK-6Urxa4uu2amjPq8s4qKW9Sox56Q0kjJlevONKT9RcRjU4rvSKu2oomLI2gfSKm2rIVNYlkF6TnhpLz3s76Ylm6V56rFeB9AaSG5xDmyyjRWIr3Urs5IZqqW3Ndnprnw9bEq3iif0cR5Pdts8vr3ZBuzemNkmfPzXPL84X-4-SNLbh_X__23iZpGCSLk7q5JN0Pkm9TPIOktTLJCWMUgZksR3EWVoVZ2khlx6ALCGX6RVnGcZlYFYXRDEsHKXAYfSEWFqDLCGX6RRndYVcpg-yGJcHzx-_OMpnWF1BlD6IUvkoH0b1is_qHqPqwSjQVY911YdRnhLIZgCjFPCWzwyIZaoAFutdMZ1WlqA0C1qQ7yQOgxqUkkEPSsmgCDkZtioyIQcruQohFUrBoAulZFCGUjJoQ07G1Hp4LoED4GsWht2aCzs0omFh2K7KB07knWG_IinyyrBgdQeAsSxsWDUozuLtM8VWVpk0C6qM7yQOgyqTkkGVScmgyhiZZpelyipjYCVZUGVSMKgyKRlUmZQMqoyTlayMwJz1PRbGJIvCDlXGVw5YstoDxuCdYckilfHKsGN1vxisz7KwYjX4Dcvcr5liK6tMmgVVxncSh0GVScmgyqRkUGWcjF2WKquMg-EsqDIpGFSZlAyqTEoGVcbJ8GrJgGnms98rpuTekwIqY8YwWLIGrON6rDODJYtUxioz2LEG_FwcsCysWNMtzmIXEsMUW1ll0iyoMr6TOAyqTEoGVSYlgyrjZOyyVFllHAxnQZVJwaDKpGRQZVIyqDJOhldLBswMn5_keLmUCztUGSfDkvXQOo515mHJIpUNnq5duplH37_MphRQ58ej9cqf_YO2XwhvEwoeaXQXfd_ljjdLm1BwE84T69Kn8Js9tamN72eLWZLOJhSk8co-Pf30bwAAAP__Hs-WXw==

# INTERSECT ALL and INTERSECT with different numbers of ORDER BY columns.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) INTERSECT ALL (SELECT x FROM xyz ORDER BY y, z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l1Fv6jYUx9_3KaLz1GpGxE4CJNKk3t0yDYlb7oCHTRO6yiVuQZeSLAkqtOK7T0nL2sT4LMct8FAVMD_7HP9_svME2T8rCKD_59fhp8GNdXE9mEwnfwwvrYtJf9j_PLW21m_j0Rdru3u0RuPr_tj69S9rd2kNbqb98aQY8Gk4xAcz6_Hy9e0WGKzjSN6E9zKD4G_gwEAAAwcYuMDAgxmDJI3nMsvitBjyVP5gEG0hsBks18kmLz6eMZjHqYTgCfJlvpIQwDT8vpJjGUYybdvAIJJ5uFyV02x3j1fb3eO35IfcAYPP8Wpzv84Ca8vKFQKDSRIWH7TaxWpGmzywrjjM9gziTf4y5etM33fWIswW1TnK8TMGWR7eSQj4mzoG1xDYe2ZWite8lFPUIWp1eNo6XrmbdZxGMpVRhTwrfvl_Q4404_cwW0xkPkravLat010ig2oagcFK3uYXV_zyl3R5tyj_07bitUynViYn7dckTnOZtrlXb-XP2gnd-oRNGnusZy-zHFnVTdyKk7aw67twdD1ebT2i2gDePLDc0L22aLWdE9nHTYvpmNj3kZXU_etoKzmDf_x8_pF27OBf5x3-VRsrmkdEmObdabXdE-VdmBbTNcr7B1ZSz3tXW8kZ8i7Ol3fSjh3y3n1H3quNdZpHxDHNu9sqLzOnyLtjWkzPKO8fWEk97z1tJWfIu3O-vJN27JD33jvyXm2s2zwirmnevdaJ0u6aluIbpf3D6qhn3dfWcYasu-fLOmm_Dln335F1n_LwMpZZEq8z2egxwa5N1eJFm2V0J5-3LYs36Vx-TeN5Ofb57agElTmOZJY_fyue3wzW5VeimCGV4f1_z5jNSV09iRNRnOtZgsry9CyHyvL1LFdhcULj-VuUTSN19SRORNUaX2EJKsvTsxwqy9ezXIUl6iz7LcupoOxK4hWUg6Jc_ao8JQ4uihJcvyxlVZ6p0h0aCVOaiEKVprIwpaksTGmF1TFVmtNImNJEFKo0lYUpTWVhSiusLipPD1FaQfWMlVbi4Jt62KWRMA-JKNRDKgvzkMrCPFRYnHKpqUaeiMJMpLJQFckwzEUyDJNRhSmHdUUhLhAdVRh-WmM-qrFQjuumQvaIKMxIKgtVkgzDnCTDMClVmHLDaSqlQ0RhUlJZqJRkGCYlGYZJqcKUe05Vyg4ipQpTzu7GUqqxUM7uplL6RBQmJZWFSkmGYVKSYZiUKky57jSV0iWiMCmpLFRKMgyTkgzDpFRhyqWn-tBnI1IqMKGc4Y2l9PczBrer-OHbMoIA7JdX68ifwwuKH4R3GQRPMFnEDyV3uktkBsFtuMokgy_hD3ktc5neL9fLLF_OIcjTjdzvf_o3AAD___S7Sns=

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) INTERSECT (SELECT x FROM xyz ORDER BY y, z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • intersect
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mVFv4kYUhd_7K6z7tFGNYGaMAUuVdrtJ1UjZZAs8tKqilRcmCVqCqW20kCj_vYIsdfCNj33tEh5WC5gz3xyPPzPkkZJ_5hTQ2Z-fLz6cXzrvTs9H49EfFyfOu9HZxdnHsbN2fhtefXLWmwfnanh6NnR-_cvZnDjnl-Oz4Wh7ADzQdR5OsqdrcmkRTe1leG8TCv4mRS5pcsmQSx651KVrl5ZxNLFJEsXbQx53HzifrinouDRbLFfp9uVrlyZRbCl4pHSWzi0FNA6_zu3QhlMbtzvk0tSm4Wy-G2a9eXi_3jx8WX6zG3LpYzRf3S-SwFm7O0JyabQMty-02luaq1UaOO8VXT-5FK3SbMgkDW8tBeoF4_kpBZ0ntx5mtzqmlFHnGLsSxtNZks4Wk7StckWyAbPPfN04d2Fy98rxGZTJQSlRcxlV93-l8vJUxV1lwatFFE9tbKcH0bvYQm5d1mbG1M0x6eKmGjKVdZkx-XmmJj25tbB_D5O7kU2vlm2T63K8WdrghZU-XFyQS3N7k757r05-iWe3d7v_Vbh0erl5GtEqHUVxauO2Yb3-XDhgPz9glWJf6-zHKK9QXUataNn2Ovmz8CrPIMfjHRagqgtO1fRwW7fapoaJVV1Qv46Jq1LmXexLKDPrqeO6WNRdRuUf18XFXTX0XlmbwMXFTTVkKusSuLhJT41drN7OxaJVuncx61Xg4sNidXWl6LruM622V8N9ui5or5b7KlLm3deTUGaW0cd1n6i7jKp3XPcVd9XQM2VtAvcVN9WQqaxL4L4mPTV2n34794lW6d59rFeB-w6LNdWVYuq6z2vtNsVS95m6oP1a7qtImXdfX0KZWcYc132i7jKq_nHdV9xVQ8-UtQncV9xUQ6ayLoH7mvTU2H3m7dwnWqV797FeBe47LNarrhSvrvu6rRrm8-piDmqZrxJj3nsDCWNmGO-43hM1l1ENjuu94q4aOqasTeC94qYaMpV1CbzXpKfG3vPeznuiVbr3HutV4L2B5MfOoU2W0SKxlX5W7OSGaqltzXZ6a59PWxKt4on9HEeT3bHPT692QbsXpjZJn981z0_OF_u3kjS24f1_f-d4maRgki5O6uSTdD5JvUzyDpLUyyQljFIGZLEJ4iytirO0kEsPQJaQy_SKswzjMjCrC6IYFo5S4DR6QiytQZaQy3SKs7pCLtMHWYzLg9ePXxzlM6yuIEofRKl8lA-jesVXdY9R9WAU6KrHuurDKE8JZDOAUQp4y2cGxDJVAIv1rphOK0tQmgUtyCeJw6AGpWTQg1IyKEJOhq2KTMjBSu5CSIVSMOhCKRmUoZQM2pCTMbUeXkvgBPiahWG35sIOjWhYGLar8oETeWfYr0iKvDIsWN0BYCwLG1YNirN4-0yxlVUmzYIq45PEYVBlUjKoMikZVBkj0-y2VFllDKwkC6pMCgZVJiWDKpOSQZVxspKdEVizvsfCmGRR2KHK-M4BS1Z7wBi8MyxZpDJeGXas7heD9VkWVqwG32GZ-zVTbGWVSbOgyvgkcRhUmZQMqkxKBlXGydhtqbLKOBjOgiqTgkGVScmgyqRkUGWcDO-WDFhmPvu-Ykp-e1JAZcwYBkvWgH1cj3VmsGSRylhlBjvWgK-LA5aFFWu6xVnsRmKYYiurTJoFVcYnicOgyqRkUGVSMqgyTsZuS5VVxsFwFlSZFAyqTEoGVSYlgyrjZHi3ZMDK8PlFjrdLubBDlXEyLFkP7eNYZx6WLFLZ4OnapZt59P3LbEoBdX48Wq_8s3_Q9gPhbULBI43uou-73PFmaRMKbsJ5Yl36FH6zpza18f1sMUvS2YSCNF7Zp6ef_g0AAP__9qua_Q==

# INTERSECT ALL and INTERSECT with compatible ORDER BY columns that are not in the final result.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY z) INTERSECT ALL (SELECT y FROM xyz ORDER BY z)
----
distribution: full
vectorized: true
·
• intersect all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl99uo0YUh-_7FOhcJdIgM_xxYqRK2W5c1ZI33tq-aFVZK9ZMYrTEUAZrgyO_ewXebgITTjgjGXNhGTN8w2_O-eThGeS_Mfgw_uvz9MPkzri4nSyWiz-nl8bFYjwdf1wahfH7fPbJeCr2xmx-O54bv_1t7C-Nyd1yPF-UAz5Mp-8MBgbbJBR3waOQ4P8DHBjYwMABBi4w8GDFIM2StZAyycohz9UNk_AJfItBtE13efnzisE6yQT4z5BHeSzAh2XwNRZzEYQiG1jAIBR5EMXVNE_F_uap2H9Jv4kCGHxM4t3jVvpGwYw9MFikQXlmDspHme1y37jhsDowSHb5j_lepvlaGJtAbuoTVONXDGQePAjw-asQk1vwrQPTy-GdN4fdyOG15njh7rZJFopMhDXyqrzzvSFvLMYfgdwsRD5LB7xR02WRCr_efMAgFvf5xQ2__DWLHjbVt9aleInpNGLy9npphbhLzCQdcK-5Im8-jNt8mPqi8-7Nw3WaZ2CbA-dEGnDdJMNzJ2mKMGxN0oMIvD8R6hWzu1fM1qqYYw7cE_WerZvk6txJmr131Zqkh96z--u9esWc7hVztCrmmtW_7Sl6z9FNcn3uJM3eu25N0kPvOf31Xr1ibveKuVoV88wTdZ6rm2N03hzNvhu15uih79z--s6lvCjMhUyTrRSdtpVWYyqTl6lF-CCOqyiTXbYWn7NkXY09ns4qUNVWoZD58ap9PJlsq0t2OUMmgsef7wfdScN2EieiRu0om4jiSECHyvLaWa7C4oR1569RFo00bCdxImrUjrKJKI4EdKgsr53lKiy7ybJes5x2lKegHBTF6ytvoTV0dS0c0kiYhUQUZiERhVpIZWEWKixP10JOI2EWElGYhUQUaiGVhVmosIbaFiqoK111rmgkTB0iClOHiELVobIwdRTWta46No2EqUNEYeoQUag6VBamjsIaaaujoLj25u-aiMLkobIwe6gsVB8yDPNHhWnvAB0iCjOIysIUorJQh8gwTCIVpr8NVFnKPrCrRSMiCrOIysIsorJQi8gwzCIVRtk515uCiMIsorIwi6gs1CIyDLNIhSlbws4WuYcVg_s4-f4lCsEH68dhvvHx_wHlDcGDBP8ZFpvke8VdFqmQ4N8HsRQMPgXfxK3IRfYYbSOZR2vw82wnDodf_gsAAP__jesN_w==

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY z) INTERSECT ALL (SELECT y FROM xyz ORDER BY z)
----
distribution: full
vectorized: true
·
• intersect all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl99uo0YUh-_7FOhcJdIgM_xxYqRK2W5c1ZI33tq-aFVZK9ZMYrTEUAZrgyO_ewXebgITTjgjGXNhGTN8w2_O-eThGeS_Mfgw_uvz9MPkzri4nSyWiz-nl8bFYjwdf1wahfH7fPbJeCr2xmx-O54bv_1t7C-Nyd1yPF-UAz5Mp-8MBgbbJBR3waOQ4P8DHBjYwMABBi4w8GDFIM2StZAyycohz9UNk_AJfItBtE13efnzisE6yQT4z5BHeSzAh2XwNRZzEYQiG1jAIBR5EMXVNE_F_uap2H9Jv4kCGHxM4t3jVvpGwYw9MFikQXlmDspHme1y37jhsDowSHb5j_lepvlaGJtAbuoTVONXDGQePAjw-asQk1vwrQPTy-GdN4fdyOG15njh7rZJFopMhDXyqrzzvSFvLMYfgdwsRD5LB7xR02WRCr_efMAgFvf5xQ2__DWLHjbVt9aleInpNGLy9npphbhLzCQdcK-5Im8-jNt8mPqi8-7Nw3WaZ2CbA-dEGnDdJMNzJ2mKMGxN0oMIvD8R6hWzu1fM1qqYYw7cE_WerZvk6txJmr131Zqkh96z--u9esWc7hVztCrmmtW_7Sl6z9FNcn3uJM3eu25N0kPvOf31Xr1ibveKuVoV88wTdZ6rm2N03hzNvhu15uih79z--s6lvCjMhUyTrRSdtpVWYyqTl6lF-CCOqyiTXbYWn7NkXY09ns4qUNVWoZD58ap9PJlsq0t2OUMmgsef7wfdScN2EieiRu0om4jiSECHyvLaWa7C4oR1569RFo00bCdxImrUjrKJKI4EdKgsr53lKiy7ybJes5x2lKegHBTF6ytvoTV0dS0c0kiYhUQUZiERhVpIZWEWKixP10JOI2EWElGYhUQUaiGVhVmosIbaFiqoK111rmgkTB0iClOHiELVobIwdRTWta46No2EqUNEYeoQUag6VBamjsIaaaujoLj25u-aiMLkobIwe6gsVB8yDPNHhWnvAB0iCjOIysIUorJQh8gwTCIVpr8NVFnKPrCrRSMiCrOIysIsorJQi8gwzCIVRtk515uCiMIsorIwi6gs1CIyDLNIhSlbws4WuYcVg_s4-f4lCsEH68dhvvHx_wHlDcGDBP8ZFpvke8VdFqmQ4N8HsRQMPgXfxK3IRfYYbSOZR2vw82wnDodf_gsAAP__jesN_w==

# INTERSECT ALL and INTERSECT with a projection on the result.
query T
EXPLAIN (DISTSQL) SELECT x FROM ((SELECT x, y FROM xyz) INTERSECT ALL (SELECT x, y FROM xyz))
----
distribution: full
vectorized: true
·
• intersect all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl-9ro0gYx9_fXyHPqxZGdPyRNsJBl22PC2TbvSYvDo6wuHHayNroOYaNLfnfD017rU581mcIJi8CRv3od57vByYvIP9NIICbv79OP01ujbPryWw--2t6bsxupjef58bW-OP-7otxdvZ2zIxy_9O2fD43Jrfzm_tZdeLTdGocvugcGKzTSNyGT0JC8A9wYOAAAxcYeMDAhwWDLE-XQso0ry55qW-YRFsIbAbxOtsU1c8LBss0FxC8QBEXiYAA5uH3RNyLMBK5ZQODSBRhnNSP2ZbPV9vy-Vv2Q5TA4HOabJ7WMqjfDhjMsrA6Mi0HFjsG6aZ4fco7_HtprEK5amKvOLuqblkwkEX4KCDgH95-cg2BvWN6AfwTBXBaAfzOAO_ozTrNI5GLqAFfVHf-6pIDq_BnKFczUdxlFm9NcV5mImj2DBgk4qE4q4Oc_57Hj6u3A2BwtykC44q31uQ9rNsKy7vHpRXlNjXTzOJ-e10OvozXfpnm0vP-3eE63bEc03KPXX-uG2F0sghtAUadEQYQgA8tQHNgTv-BOVoDc03LO3bnHN0IFyeL0O7cRWeEATrnDN255sDc_gNztQbmmZZ_7M65uhEuTxah3bnLzggDdM4dunPNgXn9B-ZpDcw3j904TzfA-EQB2n0bdwYYoG_e0H3zKP8D7oXM0rUUvbaNdutRJq-yi-hR7NdSppt8Kb7m6bK-dn94V4PqVkVCFvuzzv5gsq5POdUTchE-_f8voD9p1E3iRNS4G-UQURwJ6FJZfjfLU1icsO78I8qmkUbdJE5EjbtRDhHFkYAuleV3szyF5bRZ9keW243yFZSLonhz5W10hp6uhSMaCbOQiMIsJKJQC6kszEKF5etayGkkzEIiCrOQiEItpLIwCxXWSNtCBXWhq84FjYSpQ0Rh6hBRqDpUFqaOwrrUVcehkTB1iChMHSIKVYfKwtRRWGNtdRQU1978XRJRmDxUFmYPlYXqQ4Zh_qgw7R2gS0RhBlFZmEJUFuoQGYZJpML0t4EqS9kH9rVoTERhFlFZmEVUFmoRGYZZpMIoO-dmKYgozCIqC7OIykItIsMwi1SYsiXsbZG3WzB4SNKf3-IIArBfP-aBr7cPVDeEjxKCF5it0p81d15mQkLwECZSMPgS_hDXohD5U7yOZREvISjyjdjtfvsvAAD__zNOAYg=

query T
EXPLAIN (DISTSQL) SELECT x FROM ((SELECT x, y FROM xyz) INTERSECT (SELECT x, y FROM xyz))
----
distribution: full
vectorized: true
·
• intersect
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mF1v4kYYhe_7K9B7lUhGMDM2H5YqZbVJVaRssg1cVKqilRdmE7QEU9tow0b57xWkqeN5M4cZTJ2LSObj-Jlj5rFnnij_e0ExXfz5-fLD6Kp1cj4aT8Z_XJ62xheXFx8nrcfWbzfXn1onJ6_HQWvz8tLj5udpa3Q1ubgZb994_wOnFNAynemr5EHnFP9FggKSFJCigEIKKKLbgFZZOtV5nmbbjzztvjCaPVLcDWi-XK2L7cu3AU3TTFP8RMW8WGiKaZJ8Xegbncx01ulSQDNdJPPF7jSPm59nj5ufX1bf9YYC-pgu1g_LPN7RUUDjVbI9anck3T4HlK6L8ix5kdxpisUbrNE5xd3n4DCy6Nhk0iCLfMjO53kxX06LjjAaOxPBmXnO8mtfN637JL9__yslmjLQhFdrJVv0P7CFJpu9tzJ7vUyzmc70rJK-i7XSS4dmS6zIwJL2ympiOZRaYvVMrDptBQeR_57k92NdXK86ymh0slnp-I17PlxeUkAL_a042Y3q9Ndsfnf_ekABXa-LuHUmrKPtG6NVR74IV2k7XXVUZPbyLszAhKlWL9zVIw5RT0e2O8pZi-JQtt7x2Uwx9nzYSvmIJsTo1VvJ1mtCjPbeahrIoVkgRntlNbEcSgVirNNWbTGKpsVYvQjSfb7Lg-a7andCZxfJQ9n6x2czXdT3YSvnu2zCRV69lWz9Jlxk763mpHdoFrjIXllNLIdSgYvqtFXbRbJpF1UvgnKf7-qg-R62O5Gzi9ShbIPjs5kuGviwlfNdNeEir95KtkETLrL3VnPSOzQLXGSvrCaWQ6nARXXaqu0i1bSLqhchdJ_v4UHzPWo7myg8lGx4bDLTQ0MfsnKuh014yKu1km3YhIfsvdWc8A7NAg_ZK6uJ5VAq8FCdtmp7KGzaQ6HPhuuNzlfpMtdO21Jd41RtsR27nt3ply7zdJ1N9ecsne4--3J4vQvavTDTefHyrno5GC1f38qLTCcP_-1lv00SMEnak7pmkjSTxNuksJIk3iYJzyghQRYb4J6soT1LenLJHsjy5FLKnqUYl4JZEYhiWDhKAKzQE0t2QZYnl-zbsyJPLgV-qhHjCuH8Ab-IHsOKPKJkJUqYUT0YBcrqM6o-Vk3PwxADGCWEPapnRg1xVNcexboSTKbO4vLNguZiY9wXhtTlSwbd5UsG5cXJ2C3I2V4cDGdBffmCQX_5kkGB-ZJBg3EydieqziUQ1pMsjLkVhVUtplgYlivSGK8M21UM7MbosyysV9G3Z_HCmF-d7eObBe3DB7knDNnHlwzax5cM2oeTsZuSs304GM6C9vEFg_bxJYP28SWD9uFk-E4uBbBPyJ6p8brICKvahz-g46URsg-rTGLHyshujAHLwoqVoT2LGVYywzrbxzcL2ocPck8Yso8vGbSPLxm0DydjdyVn-3AwnAXt4wsG7eNLBu3jSwbtw8nwnVwOgH3Yg5TESyUjrGof5kWJF0vIPrwy7FgFdnmGbO28Z-sJLOKYrhV-jEX28c2C9uGD3BOG7ONLBu3jSwbtw8nwHhSyDwfbs8-G7OMLBu3jSwbt40sG7cPJ8J1cgQvQYypTeLFkhFXtw8nwagnZJ3y-DejbIv3xZT6jmLr__rXf-ff6R9svJHc5xU80vk9_7HInm5XOKf6WLHId0Kfkuz7Xhc4e5st5XsynFBfZWj8___JPAAAA__9SemCD

subtest Except

# Basic EXCEPT ALL and EXCEPT case.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz) EXCEPT ALL (SELECT x AS y FROM xyz) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • except all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l1FvqkgUx9_3U5Dz1GbHwAygQrJJu62bNfHWrvpwNxtzw5VpNdcKy2CutvG7b8TaCiNnOWj0odGKP_7M-f_C8Abq3zn40Pn62LvtPhhX993haPhX79q4GnZ6nbuRsTb-GPS_GKv167XR-XrXeRwZt73ex9cr43aYO6Y_uO8MjN__NtbAYBGF8iF4kQr8f4ADAwEMbGDgAAMXxgziJJpIpaJke8hb9oNuuALfYjBbxMt0--8xg0mUSPDfIJ2lcwk-jILvczmQQSgT0wIGoUyD2Tw7zWr9erNav36Lf8hthLtovnxZKD_LM4yD7duGKWC8YRAt0_dTfJK_r41poKZ55g2H8WbMQKXBswSfH-Tu3oNvbVi96G616KvzRReF6G5p9E_uchEloUxkmCOPt7_8v0OOXP-fgZoOZdqPTV6Y3GgdS_-gZMBgLp_Sqxt-_Vsye55m74BBf5n6RnZdh-vweY124Ro5aT7DKEllYnK3uI6_lp7QKZ6wyqoeW7D3sxxJ9RA1otgUVnEER_O4hTwivwC8ekE52S1TNEz7rHbxuuGbZLtOD1_0q1ka_gJ-8Qv5RZrQ3q_mCX7lV1VUr4Sg99lumM5Z-yzqhm_R-3xy-GKfW6XhL9BncaE-kya073PrhD7nV9WuXgmb3menYbpn7bNdN3yb3ueTwxf73C4Nf4E-2xfqM2lC-z63T-hzflWd6pVw6H12G2dts1M3ukdv84nRi132SqNfoMvOhbpMms--y94JXfYoDw8DqeJooWSlbbpVOFWDb9dYhs9yNzMVLZOJfEyiSXbs7mM_A2W9DaVKd9-K3YfuYv-VShMZvHw8m1YntcpJnIjivJwlqCy3nGVTWV45y9FYnLDw4hDl0kitchInogoLn2MJKsstZ9lUllfOcjSWKLKsQ5adQ1m5hddmaKMop7wOrpbKQVGCl8fSUrl1leY0EqY0EYUqTWVhSlNZmNIaq1lX6SaNhClNRKFKU1mY0lQWprTGaqHytBGltRm2ayutpfLqeihoJMxDIgr1kMrCPKSyMA81FqdsanLVahFRmIlUFqoiGYa5SIZhMuow7WadU4gLREd9lPjdGvNRD6bdrqsKaRNRmJFUFqokGYY5SYZhUuowbYdTVco2EYVJSWWhUpJhmJRkGCalDtP2OXkpm4iU-ii1e3dlKfVg2r27qpQOEYVJSWWhUpJhmJRkGCalDtO2O1Wl9IgoTEoqC5WSDMOkJMMwKXWYtunJP_RZiJTaKIV2D68spbcZM3iaRz-_zULwwXp_NY782b9g-4PgWYH_BsNp9DPjjtaxVOA_BXMlGXwJfsh7mcrkZbaYqXQ2AT9NlnKz-eW_AAAA___cnRur

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz) EXCEPT (SELECT x AS y FROM xyz) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • except
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mdFu4kYYhe_7FNZc7apGMDO2AUuVkiZUjZRN0sDFVlW08sIkQUswtY0WEuXdK8iyjuePj_3jEi4iwHDm43j82eM8ifTfmQjF4PPV-fHZhfPh9Gw4Gv51_tH5MBycD05Gztr54_ryk7NaP350Bp9PBlejn5tWzvGwsP3y-nRw7fz-t7MWrpjHE3MRPZhUhP8IKVyhhCu0cIUnXOGLG1csknhs0jRONh952n7hbLISYccV0_limW3evnHFOE6MCJ9ENs1mRoRiFH2dmWsTTUzS7ghXTEwWTWfbYVbrx6PV-vHL4pvZIJzEs-XDPA23PMNFtHnaaitx8-yKeJnlQ6RZdGdEKF8xnZ2KsPPs7ofl18Na1cNSFpbPwTqdptl0Ps7a0urqSFoD5t_5unbuo_T-jc_nUNqCkqyycir_f6XybKryrvLg5TxOJiYxk0L0NraUW1W1mTP5FpMqb6ohU1WXOVNgMzXpyd0L-88ovR-a7HLR1laXo_XChDvZHJ-fC1fMzG324Uh-_C2Z3t1vnwlXXC6z0AE_smv9SM2aosM4yUzS1qTUX0sH7NkD1mn1rcJ-jPIG1UXcihdtr2Pvgjd5-haPVyxA1heaZHu2rVptXdu0cl-wgG1aDGa7NuCA5VaTh3Utq66cKjisa8u7aui1qjaBa8ubashU1SVwbZOeGrtWvpNrWVN051pSKsO1xVZVfYUovtt0q-3VdpvaF6zLdxsEs93W5YDlFlGHdRurrpyqe1i3lXfV0CNVbQK3lTfVkKmqS-C2Jj01dpt6J7expujObaRUhtuKrer6CtF8t3mttl_bbXpfsB7fbRDMdluPA5ZbRB_Wbay6cqreYd1W3lVDj1S1CdxW3lRDpqougdua9NTYbfqd3Maaoju3kVIZbiu26tVXiMd3m9-qbTZvX6w-32wAy_Zan4OVG8Q7rNdYZeVU_cN6rbyrhg6pahN4rbyphkxVXQKvNempsde8d_Iaa4ruvEZKZXitz7nZeG3SRTxPTa3beh1rqJbcdGwmd-Zln6XxMhmbqyQebz_78vJyG7R9Y2LS7GWrenlxNt9tSrPERA8___fxOknCJF2e5NtJyk6Sr5O8QpJ8nSQJFI6SGmQxsZQsz1JMLtUHWUwu3S3P0oRLwywfRBEsHCXBbvSYWEqBLCaX7pRn-Uwu3QNZhMuDx09QHhUQLJ8RpQpR0o4KYFS3_KjuEqoujAJddUlXPRjlSYa2-jBKgijSlcQylcCmAckiOq0tQcqFs6AFuWBQg1wy6EEuGRQhJcNWRSakYBVnIaRCLhh0IZcMypBLBm1IyYhai8cS2AGBImHYrVZY0YiahGG7ygA4kXaG_YqkSCvDgpX9cjDaGDas6oAfSbKIYmurjHLhLKgyLhhUGZcMqoxLBlVGyBQ5LdVWGQGryIIq44JBlXHJoMq4ZFBllAyvjBSYs4FHwohkUVhRZXTlgCWrPHCU086wZJHKaGXYsQpcdxJfK6xY1SvP6pEsotjaKqNcOAuqjAsGVcYlgyrjkkGVUTJyWqqtMgqGs6DKuGBQZVwyqDIuGVQZJcOrJQ2mWUCuVzReLllhRZURY-iK209g7dUlnWksWaQyUpnGjtV-ORiRv8aK1eDSs0-yiGJrq4xy4SyoMi4YVBmXDKqMSwZVRsnIaam2yigYzoIq44JBlXHJoMq4ZFBllAyvljSYGQE9yPFyyQorqoySYcl6aO1FOvOwZJHK-s83rridxd-_TCciFJ0fj9Ybf3YPsflCdJeK8EkM7-Pv29zRemFSEd5Gs9S44lP0zZyazCQP0_k0zaZjEWbJ0jw___JfAAAA__8ry2wt

# EXCEPT ALL and EXCEPT with MergeJoiner.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY y) EXCEPT ALL (SELECT y FROM xyz ORDER BY y)
----
distribution: full
vectorized: true
·
• except all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl11v2kgUhu_3V1jnKpHGMuMPApZWSjewWiQassBFVytUuXgCVg32eoyKg_jvK0zbYE986mMhh4sKF_vxO3PeR5ocQP4XggvDT0_jD6NH7WYwms1nf49vtZvZcDx8mGuZ9ud08lHbZy_aZDoYTrU__tGyW2346WH4NNc-jMe_uBMYbCNfPHobIcH9FzgwMIGBBQxsYODAgkGcREshZZScbjnkD4z8PbgdBsE23qWn_14wWEaJAPcAaZCGAlyYe19CMRWeLxKjAwx8kXpBmL9mn73c77OXz_FXkQGDhyjcbbbS1U4Xs9g7fdUNExZHBtEu_f6KV_KXTFt7cl1k3nNYHBcMZOqtBLj8IvdoAG7nyJpFd1qPbpaiO5XRX7m7bZT4IhF-gbw4PfmrW95Y_1-eXM9EOokNXprcPIuFe9EvYBCK5_Tmnt_-ngSrdf4NGEx2qavl67rch9c1WqU18ur5NFrBY6RHscGd8na8GcYuhynuOK9fFk4ui2HqhnXVpvOm4bvvEL7c9W5l-Ba6zlvqenFCZv0JmfQJWbphX7VeZtPwd-8Qvlyvu8rwLdTLbKlexQlZ9Sdk0Sdk64Zz1XpZTcP33iF8uV69yvAt1MtqqV7FCdn1J2TTJ-ToVy2X3TR6v_Xo5Wr1K6O3UC27pWrZlEP6VMg42kpR64jXKb1K56clC38lzlsoo12yFE9JtMzvPV9OclBeI1_I9Pyreb4YbX_8JNNEeJuff2PUJ3WrSZyI6lejTCKKIwu0qCynmmUrLE7Yd_MS5dBI3WoSJ6L61SiTiOLIAi0qy6lm2QrLLLM6lyyreoSOMkILRfHizndQd-ymFnIaCbOQiMIsJKJQC6kszEKF5TS1sEsjYRYSUZiFRBRqIZWFWaiwuo0tVEZ411Qdk0bC1CGiMHWIKFQdKgtTR2H1mqpzRyNh6hBRmDpEFKoOlYWpo7D6jdVRRsgbH_4sIgqTh8rC7KGyUH3IMMwfFdb4BNgjojCDqCxMISoLdYgMwyRSYc2PgeoglXNgXYtsIgqziMrCLKKyUIvIMMwiFUY5ORdK0SeiMIuoLMwiKgu1iAzDLFJhypGwtkX2ccHgOYy-fQ58cKHz_aO_8c-PD5we8FYS3APM1tG3nDvPYiHBffZCKRh89L6KgUhFsgm2gUyDJbhpshPH42__BwAA__9VjehE

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY y) EXCEPT (SELECT y FROM xyz ORDER BY y)
----
distribution: full
vectorized: true
·
• except
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mF1P40YUhu_7K6xztSs5SmbGzoelSruFVEVigZJcbFWhlTcZINoQp7ajJSD-e5VQauyDX_vECblA-XBeP37JeezxIyX_zCmg4deL088nZ86H45PRePTn6Ufnw2h4OjwaO2vn98vzL879-sE5vzweXjq__eWsPzrDr0fDi3HFVuTSIpras_DOJhT8TYpc0uSSIZc8csmnK5eWcTSxSRLFm00et184md5T0HFptliu0s3bVy5NothS8EjpLJ1bCmgcfp_bSxtObdzukEtTm4az-XY39-uHT_frh2_LH3ZNLh1F89XdIgmczYvRMtw8bbU1XT25FK3SbBdJGt5YCtQrppNjCjpP7m5Y_l6xdAHLl2Adz5J0tpikbVXo6pMq7DD7zve1cxsmt29sn0GZApQSlZVR-Xul8opU5V1lwatFFE9tbKe56G1sKbeuajNj8gtMuryphkxVXWZM3SJTk57cnbD_CJPbkU3Pl21T6HK8XtrgxTOfT0_Jpbm9Tj98Uh9_jWc3t9tn5NL5Kg0ccJC9wkGaPRd_FrWiZdv4xTrehOkXYfKNq_pyUWK5tHWrbWpbT-0K1t0zWNF7XQlYZhh1WO-J6sqouof1XnlXDR1T1SbwXnlTDZmqugTea9JTY--pd_Jevnhdf6K1fKJNq-3VVo3eFay3Z7CianoSsGyo9WFVI6oro-odVjXlXTUc66o2gWrKm2rIVNUlUE2TnhqrRr-TavLFm_oTbeQT7bXafm3VmF3B-nsGK6qmLwHLhtocVjWiujKq_mFVU95Vw7GuahOopryphkxVXQLVNOmpsWrMO6kmX7xXf6I9-UT7rdqi8XbFGuwVq6iZgQQrG2jvsJoRlZVRDQ6rmfKuGo50VZtAM-VNNWSq6hJopklPjTXjvZNmPMl9zUubLKNFYmvdEuoUdtVSm0O20xv7XGESreKJvYijyXbb55fn26DtG1ObpM-f6ucXJ4uXj5I0tuHd__ewXycpmGTKk_xiki4mqddJXi5JvU5SDApHKQ2yhFhqUJ6lhVy6C7KEXMaUZxnGZWCWD6IYFo5SAMsTYukOyBJy6V55li_kMuCn6jMuD84P-EV0GZYviNK5KFWM6sIoUFaPUfWwILoC1_RhlOqUR7EDHOAoVR7VZQZkMq0tLoZVkQXNJQWD6pKSQXdJyaC8OBk7BdW2FwfDWVBfUjDoLykZFJiUDBqMk7EzUX6WQFhXszDmVhSWt5hhYViuSGO8MmxX1Ss3Bj9IrFfVL8_qsSzm19r24Vw4C9pHCgbtIyWD9pGSQftwMnZSqm0fDoazoH2kYNA-UjJoHykZtA8nw2dyrYB9PHZNXbEuUsA-_AIdL42QfVhlGjtWe-XGYFbUWLHaL8_qsyxm2Nr24Vw4C9pHCgbtIyWD9pGSQftwMnZWqm0fDoazoH2kYNA-UjJoHykZtA8nw2dy3Qf2YRdSGi-VCmF5-zAvarxYQvbhlWHHGrBaYoo1WLEG3HsasCx8GYvsw7kqrvyRfaRg0D5SMmgfKRm0DyfD96CQfThYxX02ZB8pGLSPlAzaR0oG7cPJ8JncgH9Al6nM4MVSISxvH06GV0vIPt7TlUvX8-jnt9mUAur892i98eflQZsvhDcJBY80uo1-bnPH66VNKLgO54l16Uv4wx7b1MZ3s8UsSWcTCtJ4ZZ-efvk3AAD___HfOvY=

# EXCEPT ALL and EXCEPT with no overlap.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz WHERE x < 2) EXCEPT ALL (SELECT x FROM xyz WHERE x >= 2) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except all
    │
    ├── • filter
    │   │ filter: x < 2
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 2
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEmF9v2lgQxd_3U1jzlGiNzL3-A1iqlG5CVSQasoC0Xe2iyoWbgEowaxsVEvHdV0Ah2MMdPA4hPET8sX8ezsw5E_MM8X9j8KH-9a75sXFrXNw0Ot3On81L46JTb9avu8bc-NRufTHmiyfjr8_1dt2YG__OymW7b8hLo_71un7XNT42m0ePVx9WJ7TaN_W28cffxhxMmIQDdRs8qhj8f0CACRJMsMEEB0xwoWfCNAr7Ko7DaHXI8_qExmAOftmE0WQ6S1Zv90zoh5EC_xmSUTJW4EM3-D5WbRUMVGSVwYSBSoLReH2Z-eLpar54-jb9oRZgwnU4nj1OYn9dT2carJ6WLAm9pQnhLHm5RJwEDwp8sVdT4wb88tLMX9an0ThRkYosN13T5n3fuBI7aX3fb9x2q5k6XlDfF8YwiIdpzpWA3vKlVpmp1eXUui-hOK2GdqYuUUxEcUTF1cCdQkYnW65exxfwbBJGAxWpQQrdW5157JAD3_lzEA87KmlNLZlpRXcxVf6eDcGEsbpPLq7E5Ydo9DBcPwMTWrNkpYy2J27mS0pWTzphlKjIkm5WyN-1F_SyF8yj6iHBfl3lQFW3YSmcWnY524KD9VQy9dhpAQTDLWyzWLJk2bkjR3AK27nFe5fI8QqLeGoVUegUk1Ec0fHNQkev5BlCR5wpdFg92YaO94rQSasq88-n5I-nXbKc3CaXnMJ201l5F5NXioooTq0iMnkxGcURHd_M5Holz2ByeSaTs3qyNXnlFSZPq2rnn0-bP55OyXJzm9zmFLabzuq7mLxaVERxahWRyYvJKI7o-GYm1yt5BpPbZzI5qydbk1dfYfK0qk7--XT44-mWclvc4ZS1m83au1i8VlRCcVoNkcGLiSiOqPhmBtfreAaDO2cyOKsnW4PXXmHwGucHibaKp-EkVrlu_cuZS5XESmM1eFCbnsXhLOqruyjsr4_dvGytQes3BipONp-KzYvGZPtRnEQqeNz9ULhPElmS2Cc5KZLYJwkmSgg9S3JZFT3LZrKkrWc5XFZNz3IRS5JNtPVNdLMkm9FEmWoiE5VpYooluayKnmUzWZkmplgOl1XTs1zEcsgmuvomemgeXBLl6UfLQ1V59GhxAqJCoqp6ksiSqoWjhokio4bLoqKGySKjhsuiogaxavS-KBNjihIQ7Z7cYcNlkWnDhlFxw4WRecOGUYGDYWgFpXspiV6iuRD0DqIyBxeGYjVdmKMvTCIWitXcWcFlkWHBhlFpwYWRccGGUXmBYfQuEp6-lxXEQssod2BwWWRgsGFUYHBhZGCwYVRgYBi9wQWxwj08GGgr5Q4MXBi9lSSxlWz0vzRnK6UDg8siA4MNowKDCyMDgw2jAgPD6K0kia1URSy0lHIHBpdFBgYbRgUGF0YGBhtGBQaG0YtcEovcw4NB3yBRgYELo7eSJLaSg1icrZQODC6LDAw2jAoMLowMDDaMCgwMo7eSJLZSDbE4d5bpwOCyyMBgw6jA4MLIwGDDqMDAMHqR29TtJRoMm_5tkwqM2rJnwv04_PltNAAfyr8epQN_tg9YnRA8xOA_Q2cY_lxzu4upisG_D8axMuFL8EPdqERFj6PJKE5GffCTaKaWy9_-DwAA__9899aG

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz WHERE x < 2) EXCEPT (SELECT x FROM xyz WHERE x >= 2) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except
    │
    ├── • filter
    │   │ filter: x < 2
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x >= 2
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mVtv2kgYhu_3V1hz1WqNYA7mYKlSug1VI6VJNyBtV7tRRWGaoBLM2kaFRvnvK0jBwV_8ms8D6UWVA3l5_MR5Jgr3IvlvIkLR_fzp_O3Zhffq9KzX7_15_tp71eued9_1vYX3_uryo7dY_vT--tC96noL7995o6GHnnrtdT-_637qlz7Wvlk9-PLqtHvl_fG3txC-mEYjezG4s4kI_xFS-EIJX2jhCyN8EYhrX8ziaGiTJIpXD7lff8HZaCHChi_G09k8XX342hfDKLYivBfpOJ1YEYr-4OvEXtnByMb1hvDFyKaD8WT9NIvlz5PF8ueX2Xe7FL54F03md9MkXPP0ZoPVm7W6EtcPvojmafYUSTq4sSKUT5jOTkXYePD3x3o_nqQ2tnE92GV6_Hjoncit1jAMzy767UIOleMIOBxP9cjD-tE5LllNkCwxtLqZyhSZPArL0ek4ScfTYVpXOUEnMveM2dd8XXq3g-T2mcdnVEGOSrEEZVTBQamaeapiV9nwfBrFIxvb0c70eraQW5fZzJhaOSZdbMqRqcxlxtTOM7l48ithfxgktz2bXs7qJueyv5zZcJPjt-fnwhcT-y19dSJfv4nHN7frt4QvLufp6iep8CI7uYs0rFu0F8WpjeuGSP29OKqN_DPuo_U5Y7-e5hmsi6gWzepBI_89eB4on_lgV4Fk9JWd17qq1fXeB5DkgG372jz4AdSsLOjQhsgRVE2RLHFU6QhiWcpiL497BLEEZVTN4x5Bxa4cc19mExxBxaYcmcpcgiPIxZPzESRf6Ahi3aKbI4hI5RxBu1rV_kFT_J7pWt3sXXzFAdvmrHXw4reqCpKHNkSKX02RLHFUqfgsS1lb1XGLzxKUUbWOW_xiV451LbMJil9sypGpzCUovosn5-KrFyo-6xbdFJ9I5RR_V6veP2ia3zNTqwd7F19zwLY5ax-8-O2qguShDZHiV1MkSxxVKj7LUtZWfdziswRlVO3jFr_YlWNdy2yC4hebcmQqcwmK7-LJufj6hYrPukU3xSdSOcXf1Wr2D5rh9yyo7d17w8Haxqxz8N53quqRh_VDal9NkCwxVKn2LEdZV81xa88SlFF1jlv7YleOZS2zCWpfbMqRqcwlqL2LJ-famxeqPesW3dSeSOXUvsN5GePKJrNomti9Xi_IP1VNriTb0Y19_KYl0Twe2k9xNFw_9vHdy_XQ-gMjm6SPn5WP75xNN59K0tgO7rYvNT9dknDJFC9JMqXglC6eCvJLGi4FAIpMmfyUfDrV3JmST6cUuT48JVtgi4mlwJZmcmm0xeQyYMsQrgBuoSmChadku3grYGIptMXk0mCryeQyaItwNeEPEJhqEawWY0rtTMn8VBtOdYp_rNuEqoMD2Ci-wjaRJXFNA1ZOcU-lAu0iWzioEnWQjuGmSlD6JtkildjdagIwOobve1RoepElnUCJ5oLBRnPJYKS5ZLDSlIy0Yu9MUzC8BTvNBYOh5pLBUnPJYKopGQ6s7IBYKzKGE5sb2821JmM4sqoBgk2cqZJfWVGxiTOFK6tAZYkyhSurUGXpGK6sApVtkS1cWYUqS8eqV5ZepENluWCwslwyWFkuGawsJateWQrmUFkuGKwslwxWlksGK0vJcGUVqqwhY7iyClWW_PapcGU1qixxph0qS5xpXFkNKkvOEl3yxwFUWTqGK6tBZdtkC1dWo8rSseqVpRfpUFkuGKwslwxWlksGK0vJqleWgjlUlgsGK8slg5XlksHKUjJcWY0qS37J07iyGlWWtgxX1qDKEmfGobLEmSn5CyyoLDmYDK6sQZWlY7iyBlS2Q7ZwZQ2qLB2rXll6kQ6V5YLBynLJYGW5ZLCylKx6ZSmYQ2W5YLCyXDJYWS4ZrCwlw5U1qLI0P7iyBlWWkuHKBqiyxFngUNnOw7Uvvk2iH1_GIxGKxq9_tWf-2_wTqy8Y3CQivBe92-jHere_nNlEhN8Gk8T64uPguz21qY3vxtNxko6HIkzjuX14-O3_AAAA___MdCbK

# EXCEPT ALL and EXCEPT with some overlap.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz WHERE x >= 1) EXCEPT ALL (SELECT y FROM xyz WHERE x < 3) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • except all
    │
    ├── • filter
    │   │ filter: x >= 1
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x < 3
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEmG9v2kgQxt_fp1jNq0RnZHbXNmCpUnoJVZHSkAOk6-kOVS5sAirBnG1USMR3PwHlj73s4HEC4UVV_vi3wzPzPBP8AvF_I_Ch_vX-9mPjjl3cNNqd9p-3l-yiXb-tX3fYnH1qNb-w2fyZ_fW53qqzGft3Wi5L9YHxS1b_el2_77CPt7dHL-gxecmarZt6i_3xN5uDBeOwr-6CJxWD_w9wsECABRIscMACF7oWTKKwp-I4jJYfeVld0OjPwC9bMBxPpsny5a4FvTBS4L9AMkxGCnzoBN9HqqWCvorsMljQV0kwHK2Omc2fr2bz52-TH2pZwnU4mj6NY5_NrFVJ7UmwfFayBXQXFoTTZHdKnASPCny-V1bjBvzywspf2afhKFGRimw3Xdb6dZ9d8Z26vu837jpVsKA5TXx2lS1pR_0-Z4MgHqSRVxy6i13ZIlO2Syl7X1D-5orKTGm8mKT8iKY9Jt9WUidbt1nTHXg6DqO-ilQ_he4urzz2kQNf_nMQD9oqaU5skWlLZz5R_p4_wYKRekgurvjlh2j4OFj9bysENzbHzXxJQWpOO4wSFdnCzQr5u_FAL3tgHlUPCfbrlANV3YWlcGLLcrYFB-upZOqRaQE4wTlFjGOLki1zhxGn1LZ1jvfeYeQVlvQEmmpxVExUfkTV08eRWdUzxBE_UxyRmrOJI-8VcZRWVeSfVVFoVGXJdnLbX1Bq205q5b3tXykqKT-Bppr9i4nKj6h6evubVT2D_cWZ7E9qzsb-lVfYP62qzD-rstCoOiXbzW1_SaltO6nV97Z_taik_ASaavYvJio_ourp7W9W9Qz2l2eyP6k5G_tXX2H_tKpO_ll1Co2qW8ptfodS2XZOa-9t_lpRQfmbK6pZv5ik_Iimp7e-WdMzWN85k_VJzdlYv_YK69coNz5aKp6E41jlusVQzhxV4kuNVf9RrXsWh9Oop-6jsLf67PppcwVavdBXcbJ-l6-fNMabt-IkUsHT9j7lPolnSXyf5KRIfJ_EiSjOzSxBZVXMLElkCWlmOVRWzcxyNZZAmyjNTXSzJElookg1kYjKNDHFElRWxcySRFamiSmWQ2XVzCxXYzloE11zEz1tHlwU5ZlHy9Oq8vDRogREBUVVzSSeJVULRw0RhUYNlYVFDZGFRg2VhUWNxqrh-6KMjKmWgNruyR02VBaaNmQYFjdUGJo3ZBgWODpMW0HpXgqkl9pccHwHYZmjF6bFarowx1yY0FharObOCioLDQsyDEsLKgyNCzIMywsdhu8i7pl7WdFY2jLKHRhUFhoYZBgWGFQYGhhkGBYYOgzf4BxZ4Z4-GNpWyh0YemH4VhLIVpLa39KUrZQODCoLDQwyDAsMKgwNDDIMCwwdhm8lgWylqsbSllLuwKCy0MAgw7DAoMLQwCDDsMDQYfgiF8gi9_TBwH8gYYGhF4ZvJYFsJUdjUbZSOjCoLDQwyDAsMKgwNDDIMCwwdBi-lQSylWoai_LLMh0YVBYaGGQYFhhUGBoYZBgWGDoMX-QS-3mpDYbE721igVFbdC14GIU_vw374EP516N04J_NA5YXBI8x-C_QHoQ_V9zOfKJi8B-CUaws-BL8UDcqUdHTcDyMk2EP_CSaqsXit_8DAAD__wcS9sM=

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz WHERE x >= 1) EXCEPT (SELECT y FROM xyz WHERE x < 3) ORDER BY y
----
distribution: full
vectorized: true
·
• sort
│ order: +y
│
└── • except
    │
    ├── • filter
    │   │ filter: x >= 1
    │   │
    │   └── • scan
    │         missing stats
    │         table: xyz@xyz_pkey
    │         spans: FULL SCAN
    │
    └── • filter
        │ filter: x < 3
        │
        └── • scan
              missing stats
              table: xyz@xyz_pkey
              spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mV1v2kgYhe_3V1hz1WiNYD7Mh6VK6TZUjZQm3YC0Xe1GFYVpgkowaxs1NMp_X4WUOPiNj_166uSiKgSOH5-Y5yC4Fcl_CxGK4aePJ2-OT71XR8ej8ejPkwPv1Wh4Mnw79jbeu_OzD97N5of31_vh-dC78f5ddzravvbkgTf89Hb4cVz64KmnD7yz86PhuffH395G-GIZzezp5NomIvxHSOELJXyhhS-M8EUgLnyxiqOpTZIovn_I7fYJx7MbEXZ8MV-u1un93Re-mEaxFeGtSOfpwopQjCdfFvbcTmY2bneEL2Y2ncwX28PcbH4c3mx-fF59s_cIb6PF-nqZhN6Nv0UarSb3t1ptJS7ufBGt0-woSTq5tCKUT7COj0TYufOrk72bL1Ib27gd7GM93B96hzJrNgzD49NxX_jibJ2G3mExksohBRykp2XJX96WzqHJenXJkr6mnq5el8kzsfo6mifpfDlN2ypX1qHMHTF7zpeNdzVJrp55fEYV5KgUq6mMKvilVN08VXFXWfB6GcUzG9vZXvQ2tpBbl7WZMfVyTLq4KUemsi4zpn6eyaUnvxb2-0lyNbLp2aptcl2ONysb7jz95uRE-GJhv6avDuXB63h-ebX93-MLp_gkB7mTNKxLdBTFqY3bhpT6e7FrO_kjVqn1ucZ-HuYZrNOoFa3aQSf_N3geKG__YL8CyXBtHdW2VautK0-T5LA9urbb5DR1a9fVQF9knOoVJksacxsnVmPZDMhmx4nVVEbVbXacirtyHIKyNsE4FTflyFTWJRgnl56cx0m-0DixLtHdOJFSOeO0X6uqLjdVy2261TaVt0Bx2B7V1mtyC3p165IN9EW2oF5hsqQxty1gNZZZVzW7BaymMqpes1tQ3JWjd8vaBFtQ3JQjU1mXYAtcenLeAvVCW8C6RHdbQErlbMF-rbq63HQtt5lWO6i8BZrD9qi2fpNb0K9bl2ygL7IF9QqTJY25bQGrscy6utktYDWVUfWb3YLirhy9W9Ym2ILiphyZyroEW-DSk_MW6BfaAtYlutsCUipnC_ZrNdXlZmq5LWhVXgLDIXsU26DJJRjULUv-8rbIDtSrS5b05bYDrL4y45pmd4DVVEY1aHYHirtydG5Zm2AHiptyZCrrEuyAS0_OO2BeaAdYl-huB0ipnB0YcL4uObfJKlomttL3EvlDteR9yXZ2aR_-aEm0jqf2YxxNt499uHm2DdreMbNJ-vBb-XDjeLn7VZLGdnL9-E330yQJk0xxkiRRCkbp4qggn6RhUgCgSJTJR8mnUd29KPk0SpHzw1GyB7KYWApkaSaXRllMLgOyDOEKYBaKIlg4SvaLswImlkJZTC4NsrpMLoOyCFcXvoBAVI9g9RhRai9K5qP6MGpQ_LLuE6oBFmCn-Az7pCyJbRqwdIp9KhVwF8nCQpXIgzQMO1UC03dJFrHEflYXgNEwfN0jQ9OTLPEEUjQXDDqaSwYlzSWDlqZkxBWVNU3BcBb0NBcMippLBk3NJYOqpmRYsHIAZK1IGFZsLmxf15qEYcmqDhA26UyVvGVFxiadKWxZBSxLKlPYsgpZloZhyypg2R7JwpZVyLI0rL5l6Uk6WJYLBi3LJYOW5ZJBy1Ky-palYA6W5YJBy3LJoGW5ZNCylAxbViHLGhKGLauQZcm7T4Utq5FlSWfawbKkM40tq4FlyZbokg8HkGVpGLasBpbtkyxsWY0sS8PqW5aepINluWDQslwyaFkuGbQsJatvWQrmYFkuGLQslwxalksGLUvJsGU1six5k6exZTWyLHUZtqxBliWdGQfLks5MySewwLJkmAy2rEGWpWHYsgZYdkCysGUNsiwNq29ZepIOluWCQctyyaBluWTQspSsvmUpmINluWDQslwyaFkuGbQsJcOWNciyVD_YsgZZlpJhywbIsqSzwMGyg7sLX3xdRN8_z2ciFJ2fP61n_tn9iPsnTC4TEd6K0VX0fZs73qxsIsKvk0ViffFh8s0e2dTG1_PlPEnnUxGm8dre3f32fwAAAP__vi1HBw==

# EXCEPT ALL and EXCEPT with swapped column orders.
query T
EXPLAIN (DISTSQL) SELECT x, y FROM xyz EXCEPT ALL SELECT y, x from xyz
----
distribution: full
vectorized: true
·
• except all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l-9vokgYx9_fX0GeV7vJEBx-2EpyiZvWy5m4ba_6YpOL2bAyrWRROAazUuP_fhFrK055jmdO8UUTCnzgO8_3kwwbkP_E4MPg28Poy_DO-HQ7HE_Gf40-G-PBaHAzMdbMKIw_Hu-_GuvixRh8uxk8TIwvo9HhfMGM9dt5YLBMQnEXLIQE_2_gwMAGBg4wcIGBB1MGaZbMhJRJtrtkU94wDNfgdxhEy3SV7_49ZTBLMgH-BvIojwX4MAl-xOJRBKHIrA4wCEUeRHH5mHXx0l8XL9_Tn6IABjdJvFospV--OzAYp8HuyLRsmG4ZJKv89Snv8B-FMQ_kvIrtc9bf3TJlIPPgWYDPj95-eAt-Z8v0Ani6ARjcr3Lf6Nusz_9vGvskjVeb5h29WiZZKDIRVuDT3Z3_dckHS_JnIOdjkd-nFj8Z6aRIhX9UN2AQi6f8U5ni8-9Z9Dw_HLytyWvA4zV5D-uchOX1s9OKcpeYSWpx73RdPnwZ9_RlqkvPmxeJ6xTJsk3LObcLXDdCVz_CJW3o1uZpwQbetg3V6dnNp2drTc8xLffcBbR1I1zpR7hkAa9q87RQQLvtAlan5zSfnqM1Pde0vHMX0NGNcK0f4ZIFvK7N00IBnbYLWJ2e23x6rtb0PPPc9XN1A_R0A1yyfL3aNC2Uz227fC7lQ-JRyDRZStFoq9k5eZTJd9lF-Cz2aymTVTYTD1kyK6_dH96XoLJioZD5_qy9PxguD6dknolg8fYd1JzUrSdxIqpXj7KJKI4EdKgsr57lKixOWHf7GOXRSN16EieievUom4jiSECHyvLqWa7Csk9ZnWOWUz9CTxmhg6J4deU7qDuuroWcRsIsJKIwC4ko1EIqC7NQYXm6FnZpJMxCIgqzkIhCLaSyMAsVVlfbQmWEV7rq2DQSpg4RhalDRKHqUFmYOgrrWledKxoJU4eIwtQholB1qCxMHYXV01ZHGSHX3vw5RBQmD5WF2UNlofqQYZg_Kkx7B3hNRGEGUVmYQlQW6hAZhkmkwvS3geoglX1gU4tcIgqziMrCLKKyUIvIMMwiFUbZOVdK0SOiMIuoLMwiKgu1iAzDLFJhypawsUXudsrgKU5-fY9C8KHz-jM_-HP4we6G4FmCv4HxPPlVcidFKiT4T0EsBYOvwU9xK3KRLaJlJPNoBn6ercR2-9u_AQAA___P8QnE

query T
EXPLAIN (DISTSQL) SELECT x, y FROM xyz EXCEPT SELECT y, x from xyz
----
distribution: full
vectorized: true
·
• except
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mF9P4zgbxe_fT1E9VzOSq9Z20j-RXokRsFokBljai5FWaJRpDVRTmm6SaloQ331FWQjJgw92shsukNI0J7-c1D_HeaDsryVFdPzt4vTLyVnn09HJZDr54_RzZ3J8enw47WxFZ9f57fL8a2e7u-8cfzs8vpi-7NuJzvZ1HwlaJXNzFt-ZjKI_SZIgRYI0CQpIUEhXgtZpMjNZlqRPX3nYH3Ay31LUF7RYrTf508dXgmZJaih6oHyRLw1FNI1_LM2liecm7fVJ0Nzk8WK5P812d3-w3d1_X_80OxJ0mCw3d6ss2nOToMk6ftrq9hRdPQpKNnlxliyPbwxF8g3WyRFF_UdRjyysSybofJNHnQMlDqQVU1UwQx_Mo0WWL1azvCcr9R1IcVCtpjjsx65zG2e37x9SoOkKmvSqsGAL_wO2oMpm763I3qySdG5SMy-l72Ot9Mqh2QIrrGApe2UNsRxKLbAGVawmbYla5L_H2e3E5Ofrnq40Ot2tTfSioC-npyRoaa7zT_tL-vz_dHFz-7LxOqTg1Q4rV6v_5ZtwlnSTdU-H1V7ehRlVYcrVS3cPyToe6qluTzs7UtZlG9Rnq2XJgQ9oYSLZhiW9SizYBm1Y0t5bQx05NAssaa-sIZZDqcCSTdpqbEnZtiXLN0G5D35Va_Drbi9wFpOqyzasz1ZLTEMf0GLwqzbE5FViwTZsQ0z23hoawKFZICZ7ZQ2xHEoFYmrSVmMxqbbFVL4J2n3w61qDP-j2Qmcx6bpso_pstcQ08gEtBr9uQ0xeJRZsozbEZO-toQEcmgVislfWEMuhVCCmJm01FpNuW0zlmxC4D_6g1uAPu85aCuqSjeuS1ZLS2AezGPhBG1LyqrBgG7chJXtvDUe_Q7NASvbKGmI5lAqk1KStxlIK2pZS4POS9tJk62SVGadXWf3Kqbry6drN_MY8d5klm3RmLtJktv_u8-b5Pmj_wdxk-fNe9bxxsnrZleWpie9eX9O_TZIwSduTwmqSqibJt0lBKUm-TZIMCkdJBbI8seTYnqU8udQAZHlyaW3P0oxLw6wQRDEsHCUBVuCJpfogy5NLDe1ZoSeXBj_VkHEFcPyAX8SAYYUeUaoUJatRAxgFyhoyqiEWxMDDNSMYJfv2KHaBYxwl7VEDZkAmU2dxMawPsqC5fMGgunzJoLt8yaC8OBmbgpztxcFwFtSXLxj0ly8ZFJgvGTQYJ2MzUXksgbCBYmHMrSisbDHNwrBckcZ4Zdiucmg3Br9IrFc5smcNWRbzq7N9OBfOgvbxBYP28SWD9vElg_bhZGxScrYPB8NZ0D6-YNA-vmTQPr5k0D6cDM_kSgL7BOyZ-oN1kQT24Q_oeGmE7MMqU9ixKrAbg1lRYcWq0J41YlnMsM724Vw4C9rHFwzax5cM2seXDNqHk7FZydk-HAxnQfv4gkH7-JJB-_iSQftwMjyTqxGwD3uQUnipVAkr24d5UeHFErIPrww7VoPVElOsxorV4N3TmGXhx1hkH871wZM_so8vGLSPLxm0jy8ZtA8nw--gkH042Afv2ZB9fMGgfXzJoH18yaB9OBmeyTW4AQOmMo0XS5Wwsn04GV4tIfsEj1eCrpfJr--LOUXU_-ev-86_lz96OiC-ySh6oMlt8mufO92tTUbRdbzMjKCv8U9zZHKT3i1WiyxfzCjK0415fPzf3wEAAP__SUhovw==

# EXCEPT ALL and EXCEPT with different ORDER BY types.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) EXCEPT ALL (SELECT y AS x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l99vqkgUx9_3ryDnqc2OkRlAhWSTdls3a-KtXfXhbjbmhivTaq4VFjBXbPzfN9LaFkbOcqb-eGikwmfmnPP9BHiG5N8FeND9et-_7t0ZF7e90Xj0V__SuBh1-92bsbE2_hgOvhjrbGMMhrfdofH730Z2aXS_3nTvx8Z1v_92ZmZcjw6evrl8_74GBsswkHf-k0zA-wc4MBDAwAIGNjBwYMIgisOpTJIw3p3ynF_QC9bgmQzmy2iV7v49YTANYwneM6TzdCHBg7H_fSGH0g9k3DSBQSBTf77Il1lnm6t1tvkW_ZAZMLgJF6unZeIZa2bsjkeRvztqNHdbGaxSz7jiMNkyCFfp63rvy3zPjJmfzIoL5OdPGCSp_yjB4x-K6N2CZ26ZXh1OvToyZmxOUYco1eFU1vHOXS3DOJCxDArkye7K_zvlQDP-9JPZSKaDqMlLMx1nkfQ-JBEYLORDenHFL3-L54-z_FtlH95rtEo1ctKwRmGcyrjJnXIff61c0C4vWKerhxr2usqBXd2FjTBqCrM8goP7cUr7EcUG8Ppp5TrWNUWjaZ3IO65bSUvHu2NWUjavVVnJGczjZzKPNK69ea1PmFfsqqifD6GVdKvRtE-UdKFbSVsr6UespJz0dmUlZ0i6OFPSSePaJ739iaQXu2rVz4ellXS7kT-6nCLplm4lHa2kH7GSctI7lZWcIenWmZJOGtc-6Z1PJL3YVbt-PmytpDuNE-Xc1q3D1cr50eoop9ytrOMMKbfPlHLSsPYpdz-RcpfykjKUSRQuE1nrdcAsLdXgux7L4FG-zCwJV_FU3sfhND_35XCQg_IQBzJJX34VLwe95f6nJI2l__T2Qlyf1K4mcSKK82qWoLKcapZFZbnVLFthcULjxUeUQyO1q0mciCo1vsASVJZTzbKoLLeaZSssUWaZH1lWAWUWGq_M0EJRdnUcHGVXNooSvHpbyq4cXaU5jYQpTUShSlNZmNJUFqa0wmrpKt2ikTCliShUaSoLU5rKwpRWWG1Ung6itDLDjrbSyq5cXQ8FjYR5SEShHlJZmIdUFuahwuKUh5pCtNpEFGYilYWqSIZhLpJhmIwqTLlZFxTiAtFRHSV-t8Z8VDem3K7rCmkRUZiRVBaqJBmGOUmGYVKqMOUJp66UHSIKk5LKQqUkwzApyTBMShWmPOcUpWwhUqqjVO7dtaVUN6bcu-tKaRNRmJRUFiolGYZJSYZhUqow5XGnrpQuEYVJSWWhUpJhmJRkGCalClMeeoovfSYipTJKodzDa0vpbicMHhbhz2_zADwwXz-NA3_2H9hd4D8m4D3DaBb-zLnjLJIJeA_-IpEMvvg_5K1MZfw0X86TdD4FL41Xcrv95b8AAAD__30kQb8=

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) EXCEPT (SELECT y AS x FROM xyz ORDER BY z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mWFP4kgcxt_fp2jmleZKYGbaAk0u0VMuZ-KqJ7zYy8VsujAqWaRcW7Kg8btfwGVr-6dP-28PeWEolGd-PJ3-ytQXEf87E74YfL65PL24so7OL4aj4V-Xx9bRcHA5OBtZK-uP2-tP1mr9bF3fng9urd__ttbH1uDz2eBm9HOvtXU63Lvr83H6fCVsMQ8n5ip4MrHw_xFS2EIJW2hhC0fYwhV3tlhE4djEcRhtdnnZfuBishJ-xxbT-WKZbF6-s8U4jIzwX0QyTWZG-GIUfJ2ZWxNMTNTuCFtMTBJMZ9thVuvnk9X6-cvim1kLW5yFs-XTPPatlW1ttoeLYLPVam9QrpeJb51Icfdqi3CZpOPFSfBghC_fAV6cC7_zatdjdKsxrm3rmcuocowuh_F8GifT-Thpy1yLZMD0M1_X1mMQP-7ZP4XSOSjJai6lcv9XKidPVdxVGrych9HERGaSid7GFnKrsjZTJjfHpIqbashU1mXK5OWZmvRk18L-M4gfhya5XrR1rsvRemH8nZFOLy-FLWbmPjk6kce_RdOHx-2zCudNN_clNWuKDsMoMVFbk1J_LRywlx-wSqv7Cvsxyh6qq7AVLtpOJ38I9vL0czxOtgBZ3W6yjoHbqtXWNRws61J6dRxclTJvYY9DmfpOHtbCrO5SKu-wFi7uqqHxytoEFi5uqiFTWZfAwk16amxh-UEWZk3RnYVJqQwLZ1tV1X2iallPt9pODeupupTdWtarSJm3XpdDmfpFHdZ6rO5Squ5hrVfcVUPDlLUJrFfcVEOmsi6B9Zr01Nh66oOsx5qiO-uRUhnWy7aqq_tE17Ke09ougbnW03Upe7WsV5Eyb70ehzL1iz6s9VjdpVS9w1qvuKuGhilrE1ivuKmGTGVdAus16amx9fQHWY81RXfWI6UyrJdt1anuE6eW9dxWDec5dRn7tZxXiTFvvD6HMXWLc1jjsZpLqfqHNV5xVw3tUtYmMF5xUw2ZyroExmvSU2PjOR9kPNYU3RmPlMowXp9zU_PWxItwHptKtw87uaFactOxmTyYt2MWh8tobG6icLzd923zehu0fWFi4uTtXfW2cTHfvRUnkQmefv7D5X2ShEm6OMnNJ6l8knyf5GSS5PskSaBwlNQgi4mlZHGWYnKpPshiculucZYmXBpmuSCKYOEoCQ6jw8RSCmQxuXSnOMtlcukeyCJcDjx_vOIoj2C5jCiViZL5KA9GdYvP6i6h6sIo0FWXdNWDUY5kaKsPoySIIl1JLFMJbOqRLKLTyhKkXDgLWpALBjXIJYMe5JJBEVIybFVkQgpWchVCKuSCQRdyyaAMuWTQhpSMqDV7LoED4CkSht2aC8saUZMwbFfpASfSzrBfkRRpZViwsl8MRhvDhlUd8CVJFlFsZZVRLpwFVcYFgyrjkkGVccmgygiZIpelyiojYCVZUGVcMKgyLhlUGZcMqoyS4ZWRAnPWc0gYkSwKy6qMrhywZJUDznLaGZYsUhmtDDtWgd-dxNcKK1b1irN6JIsotrLKKBfOgirjgkGVccmgyrhkUGWUjFyWKquMguEsqDIuGFQZlwyqjEsGVUbJ8GpJg2nmkd8rGi-XcmFZlRFj6JLbT2Dt1SWdaSxZpDJSmcaO1W4xGJG_xorV4Kdnn2QRxVZWGeXCWVBlXDCoMi4ZVBmXDKqMkpHLUmWVUTCcBVXGBYMq45JBlXHJoMooGV4taTAzPHqS4-VSLiyrMkqGJeugtRfpzMGSRSrrv97Z4n4Wfv8ynQhfdH48Wnv-7B5i84HgIRb-ixg-ht-3uaP1wsTCvw9msbHFp-CbOTeJiZ6m82mcTMfCT6KleX395b8AAAD__3N4kkE=

# EXCEPT ALL and EXCEPT with different numbers of ORDER BY columns.
query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) EXCEPT ALL (SELECT x FROM xyz ORDER BY y, z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except all
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8l1Fv4kYQx9_7Kax5StRFeNc2YEuVck2oisSFFHi4qkInH94EdAS7XqMDIr57hROa2IvnPJsAD6dzML_dmfn_5PUTqH8XEED3y13_U-_Wurjpjcajv_qX1sWo2-9ej6219cdw8Nlab7bWYHjTHVq__21tLq3ul-vu3dj61O_jdzJre_l6uQYGyziSt-GjVBD8AxwYCGDgAAMXGHgwYZCk8VQqFaf7W57yH_SiNQQ2g_kyWWX7P08YTONUQvAE2TxbSAhgHH5byKEMI5k2bWAQySycL_Jl1pvt1Xqz_Zp8lxtgcB0vVo9LFVhrZu2vR0m4v2o091sZrLLAuuIw2TGIV9nLeq_LfNtYs1DNigvk908YqCx8kBDwN0X0biCwd8ysDq9-HczanqIUUSrFqyzllbtaxmkkUxkVyJP9L392y5F-_Bmq2Uhmg6TJS2MdbxIZvIkiMFjI--ziil_-ls4fZvn_KvvwWqNTqpGT5jWK00ymTe6V-_hr5YJuecE6XT3WsJdVjuzqNm7ESVPY5REc3Y9X2o8oNoDXDyw3Ea8pGk3nROpx00pahup9ZDFl-VqVxZxBPn4m-UgTO8jXeod8xa6K-hERRmF3Gk33RGEXppW0TcP-gcWUw96uLOYMYRdnCjtpYoewt98R9mJXnfoRcYzC7jbyM8wpwu6YVtIxDfsHFlMOe6eymDOE3TlT2EkTO4S9846wF7vq1o-IaxR2r3GiqLumdfimUf-wUspB9ytLOUPQ3TMFnTSvQ9D9dwTdp7ywDKVK4qWStV4N7NJSDb7vsYwe5PPMVLxKp_Iujaf5vc-XgxyU5ziSKnv-Vjxf9JaHr1SWyvDx__fj-qR2NYkTUZxXswSV5VWzHCrLr2a5GosTGi_eojwaqV1N4kRUqfEFlqCyvGqWQ2X51SxXY4kyy37Lcgoou9B4bYYOinKr4-Bpu3JRlODV29J25ZkqzWkkTGkiClWaysKUprIwpTVWy1TpFo2EKU1EoUpTWZjSVBamtMZqo_J0EKW1GXaMldZ25Zt6KGgkzEMiCvWQysI8pLIwDzUWpxxqCtFqE1GYiVQWqiIZhrlIhmEy6jDtYV1QiAtER32U-NMa81HfmPa4riukQ0RhRlJZqJJkGOYkGYZJqcO0E05dKTtEFCYllYVKSYZhUpJhmJQ6TDvnFKVsIVLqo9Se3bWl1DemPbvrSukSUZiUVBYqJRmGSUmGYVLqMO24U1dKn4jCpKSyUCnJMExKMgyTUodph57iS5-NSKmNUmjP8NpS-rsJg_tF_OPrPIIA7JdP48g_hw_sfxA-KAieYDSLf-Tc8SaRCoL7cKEkg8_hd3kjM5k-zpdzlc2nEGTpSu52v_wXAAD__4L3RQs=

query T
EXPLAIN (DISTSQL) (SELECT x FROM xyz ORDER BY y) EXCEPT (SELECT x FROM xyz ORDER BY y, z) ORDER BY x
----
distribution: full
vectorized: true
·
• sort
│ order: +x
│
└── • except
    │
    ├── • scan
    │     missing stats
    │     table: xyz@xyz_pkey
    │     spans: FULL SCAN
    │
    └── • scan
          missing stats
          table: xyz@xyz_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mVFv4kYbhe-_X2HNVaLPCGbGGLBUKduEqpGySRq42KqKVl6YJGgJprbRQqL89wqy1PG88bFfu4SL1RrMmYfjmccMeRbJ33MRiOGX64tP55fO0dn5aDz64-LYORoNL4anY2ft_HZz9dlZb56cq5uz4Y3z65_O5tgZfjkdXo_xWa7zdJwdroUrFtHUXIaPJhHBX0IKVyjhCi1c4QlXdMWtK5ZxNDFJEsXbU553bzifrkXQccVssVyl26dvXTGJYiOCZ5HO0rkRgRiH3-bmxoRTE7c7whVTk4az-W6Y9ebpZL15-rr8bjbCFafRfPW4SAJn7Trb49Ey3B612luUq1UaOCdS3L64Ilql2XhJGt4bEcg3gOdnIui8uPUYu9UZXeeJi6kszC4H82yWpLPFJG1Lq0gyYPaebxvnIUwe3jk_g9IWlGSVl1F1_1Mqz6Yq7ioLXi2ieGpiM81F72ILuVVZmxlT12JSxU01ZCrrMmPybaYmPbm1sH8Pk4eRSa-WbW11Od4sTbBX0qeLC-GKublLj07k8S_x7P5h978K66ZnfUjNmqKjKE5N3Nak1P8XDti3B6zS6nuF_RzlHarLqBUt217HvgTv8gwsHi9fgKwuOFlHwm3VausaGpZ1Kf2aGq4KaovY54BmypOHFTGrvozKP6yIi7tqKL2yNoGIi5tqyFTWJRBxk54ai1h-kIhZU3QvYlIqQ8T5VlV1paha4tOttldDfKouZa-u-CqC2uLrcUAzxajDio9VX0bVO6z4irtqKJmyNoH4iptqyFTWJRBfk54ai099kPhYU3QvPlIqQ3z5VnV1peha4vNau70wV3y6LmW_rvgqgtri63NAM8Xow4qPVV9G1T-s-Iq7aiiZsjaB-IqbashU1iUQX5OeGotPf5D4WFN0Lz5SKkN8-Va96krxaomv26qhPa8u46Cu9iph2tIbcDAzvXiHlR6rvIxqcFjpFXfVUDBlbQLpFTfVkKmsSyC9Jj01lp73QdJjTdG99EipDOkNOD9w3phkGS0SU-mnxI41VEtuOzbTe_N6zZJoFU_MdRxNdue-Hl7tgnZPTE2Svr6qXg_OF_uXkjQ24eO_f395myRhki5O6tpJyk6Sb5O8XJJ8myQJFI6SGmQxsZQszlJMLjUAWUwu3SvO0oRLw6wuiCJYOEqCy-gxsZQCWUwu3SnO6jK5dB9kES4Prh-_OMonWF1GlMpFSTvKh1G94lXdI1Q9GAW66pGu-jDKkwxtDWCUBFGkK4llKoFNfZJFdFpZgpQLZ0ELcsGgBrlk0INcMihCSoatikxIwUruQkiFXDDoQi4ZlCGXDNqQkhG15tcSuAC-ImHYrVZY3oiahGG7Sh84kXaG_YqkSCvDgpWDYjDaGDas6oAPSbKIYiurjHLhLKgyLhhUGZcMqoxLBlVGyBS5LVVWGQEryYIq44JBlXHJoMq4ZFBllAzvjBSYs75HwohkUVheZXTngCWrPLDKaWdYskhltDLsWAW-dxJfK6xY1S_O6pMsotjKKqNcOAuqjAsGVcYlgyrjkkGVUTJyW6qsMgqGs6DKuGBQZVwyqDIuGVQZJcO7JQ2mmU--r2i8XbLC8iojxtAlPz-BvVePdKaxZJHKSGUaO1Z3i8GI_DVWrAZfPQckiyi2ssooF86CKuOCQZVxyaDKuGRQZZSM3JYqq4yC4SyoMi4YVBmXDKqMSwZVRsnwbkmDmeHTRY63S1ZYXmWUDEvWQ3sv0pmHJYtUNni5dcXdPPrxdTYVgej8fLTe-Wf_ENs3hPeJCJ7F6CH6scsdb5YmEcFdOE-MKz6H382ZSU38OFvMknQ2EUEar8zLy__-CQAA__9pHJWN

# EXCEPT ALL and EXCEPT with compatible ORDER BY columns that are not in the final result.
query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY z) EXCEPT ALL (SELECT y FROM xyz ORDER BY z)
----
distribution: full
vectorized: true
·
• except all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl9-OokgUh-_3Kci56k6KaPHHbkk26dluN2vitL3qxWw2ZsJIdUuGFpbCjGh89404My1Uc4ZTiciFESm-4lfnfLHYgfwvAg8Gn55GH4aPxtXDcDqb_j26Nq6mg9Hgfmbkxp-T8Udjk2-N8eRhMDH--MfYXhuDT_eDp5nxYTT6xUhgsIoD8ei_Cgnev8CBgQUMbGDgAAMX5gySNF4IKeP0MGRX3DAMNuB1GYSrZJ0dfp4zWMSpAG8HWZhFAjyY-V8iMRF-INJOFxgEIvPDqJhmk2_vNvn2c_JV5MDgPo7WryvpGTkztsBgmviHM7NzeJTxOvOMOw7zPYN4nX2f722aL7mx9OWyPEExfs5AZv6LAI-fhBg-gNfdM70c7mVzWJUcbm2ON-56FaeBSEVQIs8Pd_5qyDuL8Zcvl1ORjZMOr9R0lifCO-k8YBCJ5-zqjl__noYvy-Jb7Tq8ZbQrGXl9sbQSPMZmnHS4W12Odx_GqT5MecV5887hOp3TscyOfSYHuG6S3qWTVC3o1SZpwQLekgXlclnNy2Vplcs2O86ZGs_STXJz6STVxrupTdJC41ktNV65XHbzctla5XLM4k_2HI1n6ya5vXSSauPd1iZpofHslhqvXC6nebkcrXK55pnaztHN0b9sjmrT9WtztNB0TktN51DeDCZCJvFKikZbyW5lKpMfIovgRRyXUMbrdCGe0nhRjD2ejgtQ0VOBkNnxqnU8Ga5-XJJZKvzXny82zUm9ehInovr1KIuI4khAm8py61mOwuKEdbdOUS6N1KsncSKqX4-yiCiOBLSpLLee5Sgsq8rqnrLs-hK6SgltFMXLK99F3XF0LeQ0EmYhEYVZSEShFlJZmIUKy9W1sEcjYRYSUZiFRBRqIZWFWaiwetoWKiW80VXHopEwdYgoTB0iClWHysLUUVi3uurc0EiYOkQUpg4RhapDZWHqKKy-tjpKCbn25s8mojB5qCzMHioL1YcMw_xRYdo7wFsiCjOIysIUorJQh8gwTCIVpr8NVAup7AObWuQQUZhFVBZmEZWFWkSGYRapMMrOudQUfSIKs4jKwiyislCLyDDMIhWmbAkbW-Ts5wyeo_jb5zAAD7rfD_Odjx8HHG7wXyR4O5gu428Fd5YnQoL37EdSMPjofxUPIhPpa7gKZRYuwMvStdjvf_s_AAD__55vCI8=

query T
EXPLAIN (DISTSQL) (SELECT y FROM xyz ORDER BY z) EXCEPT (SELECT y FROM xyz ORDER BY z)
----
distribution: full
vectorized: true
·
• except
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mF9P20gUxd_3U1j3qZUcJTNj54-lldotWS0SBZbkoasVqtxkgKghztqOSkB891XCsia--NjXruGhaohz_PMh9zceP1Dyz5ICGn85P_l4fOq8OzqeTCd_nrx33k3GJ-NPU2fr_H5x9tm52947ZxdH4wvnt7-c-_fO-Mun8fm05ChyaRXN7Wl4axMK_iZFLmlyyZBLHrnk06VL6zia2SSJ4t0hD_sPHM_vKOi5tFitN-nu15cuzaLYUvBA6SJdWgpoGn5b2gsbzm3c7ZFLc5uGi-X-NHfb-w932_uv6-92Sy59ipab21USOFvXuSeXJutw96rT3aGcbdLA-aDo8tGlaJNm50vS8NpSoF4AHh9R0Ht06zH67THqHKMvYTxaJOliNUu7KtciO2H2mW9b5yZMbl45PoMyOSglai6j8n8qlZenKu4qC96sonhuYzs_iN7HFnLrsjYzJj_HpIubashU1mXG1M8zNenJrYX9R5jcTGx6tu6aXJfT7doGzwb6eHJCLi3tVfrug3r_a7y4vtn_r8LcDHIXaX5y8adRJ1p3jZ-v41WYYR7msHFV3TSqjmm6utM1NXyo6lL226TMG7Evoczco9o1oqi7jKrfrhGLu2pon7I2gRGLm2rIVNYlMGKTnhobUb2REQ-L19XHW9cab9PpejUkpOtSDtqkzEtoIKHMxl23KyFRdxnVoF0JFXfVcODL2gQSKm6qIVNZl0BCTXpqLCH9RhI6LN5UH29Ta7y9zn6zJpWQqUs5bJMyL6GhhDIbd9OuhETdZVTDdiVU3FXDgS9rE0iouKmGTGVdAgk16amxhMwbSeiweK_6eHu1xtvv1FCQV5dx1B5jXkAjCWM26l67AhI1l1GN2hVQcVcNh72sTSCg4qYaMpV1CQTUpKfGAvLeSECe5PnphU3W0SqxlR499XKn6qjdJdv5tX2qMIk28cyex9Fsf-zTy7N90P4Xc5ukT-_qpxfHq-e3kjS24e3_D85fJimYZIqT_HySziepl0neQZJ6maQYFI5SGmQJsdSoOEsLuXQfZAm5jCnOMozLwCwfRDEsHKUAlifE0j2QJeTSg-IsX8hlwFfVZ1wenB_wjegzLF8QpQ-iVD6qD6NAWQNGNcCC6AtcM4RRqlccxS5whKNUcVSfGZDJtLK4GFZJFjSXFAyqS0oG3SUlg_LiZGwJqmwvDoazoL6kYNBfUjIoMCkZNBgnYyvR4SyBsL5mYcytKOzQYoaFYbkijfHKsF3VoNgY_CKxXtWwOGvAsphfK9uHc-EsaB8pGLSPlAzaR0oG7cPJ2KJU2T4cDGdB-0jBoH2kZNA-UjJoH06GV3KtgH08dk9dsi9SwD78Bh1vjZB9WGUaO1Z7xcZgVtRYsdovzhqyLGbYyvbhXDgL2kcKBu0jJYP2kZJB-3AytipVtg8Hw1nQPlIwaB8pGbSPlAzah5PhlVwPgX3YjZTGW6Vc2KF9mBc13iwh-_DKsGMN2C0xxRqsWAOePY1YFr6NRfbhXCV3_sg-UjBoHykZtI-UDNqHk-FnUMg-HKzkORuyjxQM2kdKBu0jJYP24WR4JTfgD9BnKjN4s5QLO7QPJ8O7JWQf7_HSpatl9OPrYk4B9f776bzyz_MP7T4QXicUPNDkJvqxz51u1zah4CpcJtalz-F3e2RTG98uVoskXcwoSOONfXz85d8AAAD__xOmWzI=

# EXCEPT ALL and EXCEPT with a projection on the result.
query T
EXPLAIN (DISTSQL) SELECT x FROM ((SELECT x, y FROM xyz) EXCEPT ALL (SELECT x, y FROM xyz))
----
distribution: full
vectorized: true
·
• except all
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJzEl99r6kgUx9_3rwjnqYUJcfLD1sBCL63LCt62W324sMgl10xruKnJZiLXtPi_L8a6NRlzNmeQ6ENhNPkk3znfD0zfQf4Tgw_Db4_jL6N74-JuNJlO_hpfGpPheHg7NdbGH08PX42Li_2aGcXuq3XxdmkMv90OH6fGl_HYOH7FJTBYJqG4D16FBP9v4MDABgYOMHCBgQczBmmWzIWUSba95L28YRSuwe8xiJbpKt9-PWMwTzIB_jvkUR4L8GEa_IjFkwhCkVk9YBCKPIji8jHr4u1mXbx9T3-KAhjcJvHqdSn98u2AwSQNtivTsmG2YZCs8o-nfMJ_FMYikIsq9oazm-0tMwYyD14E-Pzg7Ud34Pc2TC-Ad6YAdi2A1xjgE71aJlkoMhFW4LPtnf93yZFd-DOQi4nIH1KL16Y4LVLhH5QMGMTiOb8oU1z-nkUvi_0CGDysct-44bUN-Uzq1JLy5llp5bhPzCS1uFfflKMv49ZfprrvvH1xuE5xLNu0nFN3n-tG6J8tQr39_cYIHbSfd9r-6rTs9tOytablmJZ76sLZuhGuzhahXrirxggdFM7utHDVaTntp-VoTcs1Le_UhXN0I1yfLUK9cNeNEToonNNp4arTcttPy9Walmeeum6uboDBmQLUyzZoDNBB2dxOy-ZSDv5PQqbJUopWR8Ve7VEm3wYX4YvYbaRMVtlcPGbJvLx2t3woQWWlQiHz3a_2bjFa7n-SeSaC1__-b2lP6jeTOBE1aEbZRBRHAjpUltfMchUWJ-y7fYjyaKR-M4kTUYNmlE1EcSSgQ2V5zSxXYdl1Vu-Q5TSP0FNG6KAoXt35HuqOq2shp5EwC4kozEIiCrWQysIsVFieroV9GgmzkIjCLCSiUAupLMxChdXXtlAZ4ZWuOjaNhKlDRGHqEFGoOlQWpo7CutZV54pGwtQhojB1iChUHSoLU0dhDbTVUUbItQ9_DhGFyUNlYfZQWag-ZBjmjwrTPgFeE1GYQVQWphCVhTpEhmESqTD9Y6A6SOUc2NYil4jCLKKyMIuoLNQiMgyzSIVRTs6VUgyIKMwiKguziMpCLSLDMItUmHIkbG2Ru5kxeI6TX9-jEHzofXzMI3_2H9jeELxI8N9hskh-ldxpkQoJ_nMQS8Hga_BT3IlcZK_RMpJ5NAc_z1Zis_nt3wAAAP__GpX8CQ==

query T
EXPLAIN (DISTSQL) SELECT x FROM ((SELECT x, y FROM xyz) EXCEPT (SELECT x, y FROM xyz))
----
distribution: full
vectorized: true
·
• except
│
├── • scan
│     missing stats
│     table: xyz@xyz_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: xyz@xyz_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy8mE1P40gXhffvr4juCiRHSVXZ-bD0SrQaRoNENwzJoqURarmTAqIOccZ21ATEfx8RhjHxpQ5144xZIDnBx4-PuY9dfqT8rznFdPLt4uzT6dfWwfHpaDz64-ywNTo5O_k8bt23frs8_9I6OHjdDlrrl4_u1w-HrZNvn08uxq33vz2kgBbp1H5N7mxO8Z-kKCBNARkKKKSAIroKaJmlE5vnafb8J4-bHU6n9xR3A5otlqvi-eOrgCZpZil-pGJWzC3FNE5-zO2lTaY263QpoKktktl8c5j79cPR_frh-_KnXVNAn9P56m6Rxxs6Cmi0TJ632h1NV08BpauiPEpeJDeWYvUG6_SY4u5TsBtZtG8yXSGLJGTHs7yYLSZFR1UaO1LBUfWY5W4_1q3bJL99f5cSzVTQlKi1ki36D9jCKpu7tzJ7tUizqc3sdCt9E-uk1x7NllhRBUu7K6uJ5VFqidWrYtVpK9iJ_Pckvx3Z4nzZMZVGx-uljV_F8-nsjAKa2-viYHNKh__PZje3rxsU0PmqiFtHynmq_cqpmj1fga9pO112TFQt5V2YQRVmu3fl7x21i3c6ut0x3k5Uu7L19s9WtWJPwlaaRzVhRVFvJVuvCSu6e6upH49mgRXdldXE8igVWLFOW7WtqBq14vYV0P7DrncadtPuhN4i0ruy9ffPVhVRX8JWDrtuQkSi3kq2fhMicvdWc-I9mgUicldWE8ujVCCiOm3VFpFuVETbV8D4D7vZadjDdifyFpHZlW2wf7aqiAYStnLYTRMiEvVWsg2aEJG7t5oT79EsEJG7sppYHqUCEdVpq7aITKMi2r4Cof-whzsNe9T21lC4K9lw32RVCQ0lZOWgh01ISNRayTZsQkLu3mpOu0ezQELuympieZQKJFSnrdoSChuVUCh5w3pp82W6yK3Xq6hu5VBt9XzidnpjX4rM01U2sRdZOtn87cvm-SZo88HU5sXLt_pl43Tx-lVeZDa5-_e1-tskBZOMOymqJulqknqbFG4lqbdJikHhKKVBlhBLDd1ZWsileyBLyGWMO8swLgOzIhDFsHCUAlihEEt3QZaQS_fdWZGQy4B_1YhxhXB-wH9Ej2FFgii9FaWqUT0YBcrqM6o-FkRP4JoBjFJddxQ7wSGOUu6oHjMgk6m3uBjWB1nQXFIwqC4pGXSXlAzKi5OxW5C3vTgYzoL6koJBf0nJoMCkZNBgnIzdibZnCYT1NAtjbkVh2xYzLAzLFWmMV4btqvpuY_CTxHpVA3dWn2Uxv3rbh3PhLGgfKRi0j5QM2kdKBu3DydhNyds-HAxnQftIwaB9pGTQPlIyaB9Ohu_kWgH7hOyZ-oN1kQL24Q_oeGmE7MMq09ixOnQbg1lRY8XqyJ01YFnMsN724Vw4C9pHCgbtIyWD9pGSQftwMnZX8rYPB8NZ0D5SMGgfKRm0j5QM2oeT4Tu5HgD7sAcpjZdKlbBt-zAvarxYQvbhlWHHGrBaYoo1WLEGvHsasiz8GIvsw7k-ePJH9pGCQftIyaB9pGTQPpwMv4NC9uFgH7xnQ_aRgkH7SMmgfaRk0D6cDN_JDbgAPaYygxdLlbBt-3AyvFpC9gmfrgK6nqe_vs-mFFP3n5_2O79ef-h5h-Qmp_iRRrfpr03ueL20OcXXyTy3AX1JftpjW9jsbraY5cVsQnGRrezT0__-DgAA___jGlsT
