# LogicTest: local

statement ok
CREATE TABLE uniontest (
  k INT,
  v INT
)

query T
EXPLAIN SELECT v FROM uniontest UNION SELECT k FROM uniontest
----
distribution: local
vectorized: true
·
• union
│
├── • scan
│     missing stats
│     table: uniontest@uniontest_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: uniontest@uniontest_pkey
      spans: FULL SCAN

query T
EXPLAIN SELECT v FROM uniontest UNION ALL SELECT k FROM uniontest
----
distribution: local
vectorized: true
·
• union all
│
├── • scan
│     missing stats
│     table: uniontest@uniontest_pkey
│     spans: FULL SCAN
│
└── • scan
      missing stats
      table: uniontest@uniontest_pkey
      spans: FULL SCAN

# Check that EXPLAIN properly releases memory for virtual tables.
query T
EXPLAIN SELECT node_id FROM crdb_internal.node_build_info UNION VALUES(123)
----
distribution: local
vectorized: true
·
• union
│
├── • virtual table
│     table: node_build_info@primary
│
└── • values
      size: 1 column, 1 row

statement ok
CREATE TABLE abc (a INT, b INT, c INT)

query T
EXPLAIN (VERBOSE) (SELECT a FROM abc ORDER BY b) INTERSECT (SELECT a FROM abc ORDER BY c) ORDER BY a
----
distribution: local
vectorized: true
·
• sort
│ columns: (a)
│ estimated row count: 100 (missing stats)
│ order: +a
│
└── • intersect
    │ columns: (a)
    │ estimated row count: 100 (missing stats)
    │
    ├── • project
    │   │ columns: (a)
    │   │
    │   └── • scan
    │         columns: (a, b)
    │         estimated row count: 1,000 (missing stats)
    │         table: abc@abc_pkey
    │         spans: FULL SCAN
    │
    └── • project
        │ columns: (a)
        │
        └── • scan
              columns: (a, c)
              estimated row count: 1,000 (missing stats)
              table: abc@abc_pkey
              spans: FULL SCAN

# Regression test for #32723.
query T
EXPLAIN (VERBOSE) SELECT a FROM ((SELECT '' AS a , '') EXCEPT ALL (SELECT '', ''))
----
distribution: local
vectorized: true
·
• project
│ columns: (a)
│
└── • except all
    │ columns: (a, a)
    │ estimated row count: 1
    │
    ├── • project
    │   │ columns: (a, a)
    │   │
    │   └── • values
    │         columns: (a)
    │         size: 1 column, 1 row
    │         row 0, expr 0: ''
    │
    └── • project
        │ columns: ("?column?", "?column?")
        │
        └── • values
              columns: ("?column?")
              size: 1 column, 1 row
              row 0, expr 0: ''

query T
EXPLAIN (VERBOSE) ((SELECT '', '', 'x' WHERE false))
UNION ALL ((SELECT * FROM (VALUES ('', '', 'x'), ('', '', 'x'))) EXCEPT (VALUES ('', '', 'x')))
----
distribution: local
vectorized: true
·
• render
│ columns: ("?column?", "?column?", "?column?")
│ render ?column?: column1
│ render ?column?: column2
│ render ?column?: column3
│
└── • except
    │ columns: (column1, column2, column3)
    │ estimated row count: 1
    │
    ├── • values
    │     columns: (column1, column2, column3)
    │     size: 3 columns, 2 rows
    │     row 0, expr 0: ''
    │     row 0, expr 1: ''
    │     row 0, expr 2: 'x'
    │     row 1, expr 0: ''
    │     row 1, expr 1: ''
    │     row 1, expr 2: 'x'
    │
    └── • values
          columns: (column1, column2, column3)
          size: 3 columns, 1 row
          row 0, expr 0: ''
          row 0, expr 1: ''
          row 0, expr 2: 'x'

query T
EXPLAIN (VERBOSE)
SELECT 1 FROM (SELECT k FROM uniontest WHERE k > 3 UNION ALL SELECT k FROM uniontest)
----
distribution: local
vectorized: true
·
• render
│ columns: ("?column?")
│ render ?column?: 1
│
└── • union all
    │ columns: ()
    │ estimated row count: 1,333 (missing stats)
    │
    ├── • project
    │   │ columns: ()
    │   │
    │   └── • filter
    │       │ columns: (k)
    │       │ estimated row count: 333 (missing stats)
    │       │ filter: k > 3
    │       │
    │       └── • scan
    │             columns: (k)
    │             estimated row count: 1,000 (missing stats)
    │             table: uniontest@uniontest_pkey
    │             spans: FULL SCAN
    │
    └── • scan
          columns: ()
          estimated row count: 1,000 (missing stats)
          table: uniontest@uniontest_pkey
          spans: FULL SCAN

statement ok
CREATE TABLE ab (a INT NOT NULL, b INT, INDEX(a, b), INDEX (b, a))

statement ok
CREATE TABLE xy (x INT NOT NULL, y INT, INDEX(x, y), INDEX (y, x))

# Regression tests for #41245, #40797. Ensure we can plan ordered set ops
# without a sort.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a FROM ab UNION SELECT x AS a FROM xy ORDER BY a
----
distribution: local
vectorized: true
·
• union
│ columns: (a)
│ ordering: +a
│ estimated row count: 200 (missing stats)
│
├── • scan
│     columns: (a)
│     ordering: +a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_a_b_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x)
      ordering: +x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_x_y_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckVFvmzAQgN_3K6x72jRHBfrmp7SFSUhp6CCbNk0IGXzN0AhmtlFBEf99MixrQc20xQ-Iu7O_-3w-gv5ZAYPgy8PmJtySt36Y7JKPG0o-B_FtlATvSBJsgrsd4eRDHN0TnpNP2zDantIduUlOta4nUewHMbn9SjhQqKXALT-gBvYNXEgpNEoWqLVUNnUcN4SiA-ZQKOumNTadUiikQmBHMKWpEBjseF5hjFygunKAgkDDy2rEdv2667Mu67NSdEDhTlbtodaM2CBpuP1dQTpQkK157qAN3yMw94VS6ANzBnqZlTu34vma5xnP8qUV_xcrb2HlnrV6lpFKoEIx11i77yEdXlH3S23KujBX3vLAWanrhZT3P6OKUTey1jjrdq6Ts-i0cu0VUOxxurKWrSrwQcli3DuF0QgaEwK1mareFIT1WHJtB4X88GemL0nupSRnSfL-SrqekZw5KaXwWMmnrBTAwPm9Vq98TgvsAb7XdtjJd_k0Ynd9Y0f1yCuNFO75D_TRoDqUtX32AphRLQ7Dm18BAAD__87xRpE=

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b FROM ab UNION SELECT x AS a, y AS b FROM xy ORDER BY a
----
distribution: local
vectorized: true
·
• union
│ columns: (a, b)
│ ordering: +a
│ estimated row count: 2,000 (missing stats)
│
├── • scan
│     columns: (a, b)
│     ordering: +a,+b
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_a_b_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x, y)
      ordering: +x,+y
      estimated row count: 1,000 (missing stats)
      table: xy@xy_x_y_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckd9umzAUxu_3FNa52lRHBXrnK9rCJKQ0dJBNmyaEDD7N0AhmtlFBEe8-mbRrQc20xReg88ff-Z3PB9C_amAQfr1fX0cb8j6I0m36aU3JlzC5idPwA0nDdXi7JZySgnxM4jvCC_J5E8Wb50pPrlNbHuz_qacfSJwEYUJuvhEOFBopcMP3qIF9BxcyCq2SJWotlU0dpoZI9MAcClXTdsamMwqlVAjsAKYyNQKDLS9qTJALVJcOUBBoeFVPsv3g90Pe50NeiR4o3Mq62zeakZ6SASikLbfRCrKRguzMyxBt-A6Bua-oogCYM9LzwNw5GC98XuQ8L5Zg1tN_AfMWYO5JsBceqQQqFHMS372gvncB2fjGBkGlTdWU5tJbXqK-d5LtasHm_Y9pCepWNhpnA09NchaTVq7dAsUOj5tr2akS75Usp95jGE9CU0KgNseqdwyiZiq5doJCvv9j7Wsl91wlZ6nk_VXpaqbkzJUyCg-1fMwrAQycp7N64_N8wF7gO23NTn_Ix0l2O7TWqgdea6Rwx39igAbVvmrsy5fAjOpwHN_9DgAA__8_SEwU

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b FROM ab UNION ALL SELECT x AS a, y AS b FROM xy ORDER BY a
----
distribution: local
vectorized: true
·
• union all
│ columns: (a, b)
│ ordering: +a
│ estimated row count: 2,000 (missing stats)
│
├── • scan
│     columns: (a, b)
│     ordering: +a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_a_b_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x, y)
      ordering: +x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_x_y_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckEFvm0AQhe_9Fas5tepaAXrbk52YSkgEUnCrVhVCCztxUTFLdxcFZPHfq8VJE1BctZ4DaGYebz7eEfSvGhj4X-_CTRCRt9sg3aWfQkq--Ml1nPrvSOqH_s2OcEoK8jGJbwkvyOcoiCOyCcOnbU82qZUM9v2o6wcSJ1s_IdffCAcKjRQY8QNqYN_BhYxCq2SJWktlR8dJEIgemEOhatrO2HFGoZQKgR3BVKZGYLDjRY0JcoHqygEKAg2v6sm2H9b9kPf5kFeiBwo3su4OjWakp2QACmnLbbeCbKQgO_N8RBu-R2DuC6pgC8wZ6WVg7hyMF2te5DwvlmA2138B8xZg7lmwZx6pBCoUc5K1-x6y8RX6SK5ke-XN1OdonAWN9z8xJahb2Wi86NLKtewo9nj6Vy07VeKdkuWkPbXxZDQNBGpz2nqnJmimlWsvKOSHP2G-dHIvdXKWTt5fnT7MnJy5U0bhvpYPeSWAgfNYq1ceTwX2A77XNuz0h3yYbHdDa6O657VGCrf8J27RoDpUTaVNVQIzqsNxfPM7AAD___qGSXU=

# TODO(yuzefovich): The synchronizers in the below DistSQL plans are all
# unordered. This is not a problem, but we shouldn't need an input synchronizer
# at all when there is only one incoming stream. We should look into removing
# it.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b FROM ab INTERSECT SELECT x AS a, y AS b FROM xy ORDER BY b, a
----
distribution: local
vectorized: true
·
• intersect
│ columns: (a, b)
│ ordering: +b,+a
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (a, b)
│     ordering: +b,+a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_b_a_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x, y)
      ordering: +y,+x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_y_x_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJykk19r2zwUxu_fTyHOVUtV6j_pjeAFt40HhrTu7DA2RjCyfZqaOZYnydSm5LsP2e2SmCRbOl3YnKOj33meg_QK6mcJDPyvj7Ob4IGcTYN4Hn-eUfLFj27D2D8nsT_z7-aEU5KST1F4T3hKgoe5H8Um_bbbkpvYlHTm_1bXdiSMpn5Ebr-RlBIOFCqR4wNfoQL2HWxYUKilyFApIU3qtS8I8haYRaGo6kab9IJCJiQCewVd6BKBwZynJUbIc5RXFlDIUfOi7LFt57Vd0iVtUuQtULgTZbOqFCMtJR1QiGtuoktYrCmIRm-aKM2XCMzeUhVMgVlr-jFh9q4wnno8TdKEj4WZ0f6NMGckzD5F2LRQuqgyfeXsqvJs6plUKHOUmDPiOdSzD2pwRxqcD2lw_0nDZKTBPahh07qpxADf6bwwJ_9UssfIPcolxqjD-mqya2Xe1ci23sfNbAYUSnzSZ55zQT374vx_WSyfN6Hx3WhGhiEc8nw98jw5Ze4RqlpUCsfe93ayRp0ubTMBzJc4TFSJRmb4KEXW1w5h2IP6RI5KD7vuEATV-5bSEvnq99XdJtlHSc5hkjUmOUdJkx2SvU1yxiT3BJKzTXLHpMlR0vUxdwsKT6V4SYocGFhv63LP532BOcCXylyA-Fm89FhzLRWwJ14qpHDPf-AUNcpVUZknmQHTssH1-r9fAQAA__9Mre2W

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b FROM ab INTERSECT ALL SELECT x AS b FROM xy ORDER BY b
----
distribution: local
vectorized: true
·
• intersect all
│ columns: (b)
│ ordering: +b
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (b)
│     ordering: +b
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_b_a_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x)
      ordering: +x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_x_y_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJycklFvmzAQx9_3Kax7ajVXBfpmaVLShklISeggmjZNETL4QtEIZrZRQVG--2RY1oDSbZ0fkH13_t3_f-YA-kcJDPwvj8t5sCZXiyDexJ-WlHz2o_sw9q9J7C_9hw1JyccoXBGekmC98aPYxubL5Sndknl8qmk7EkYLPyL3X0kKFCopcM33qIF9Axe2FGolM9RaKhs69AWBaIE5FIqqbowNbylkUiGwA5jClAgMNjwtMUIuUN06QEGg4UXZY9tu1nZJm3RJIVqg8CDLZl9pRuwhrrnd3sD2SEE25qWDNjxHYO6ZpGABzDnS_1PljlXxdMbTJE34VFX6L6q8iSr3VVUvYppKKoEKxUjI1t78W8kFaytUOcZowvrWGzvbdDWy8a8AFErcmauZ-_76gyryp2ELFMLGMDJzXzV6NzHqvWX8EepaVhqnhi92ciadblxrG0WOwxi1bFSGj0pmfe1wDHtQHxCozZD1hkNQ9SnPdlDI97_f6ZzkvoHknpOcKcn7I-luRHLGpC2FXSmfk0IAA-fXurnwOS2wF3iu7bDjJ_ncY-27a2A7XmqksOLfcYEG1b6oCm2KDJhRDR6P734GAAD__4jhY2M=

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, a FROM ab INTERSECT ALL SELECT y AS b, x AS a FROM xy ORDER BY b
----
distribution: local
vectorized: true
·
• intersect all
│ columns: (b, a)
│ ordering: +b
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (b, a)
│     ordering: +b,+a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_b_a_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (y, x)
      ordering: +y,+x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_y_x_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJycklFr2zAQx9_3KcQ9tVSltvsmGDhtPDAkcWeHsTGCkaOLa-ZYniRTm5DvPuS0TWzSjUwPNnc6_e7_P2kH-ncJDILvT7NJuCBX0zBZJl9nlHwL4ocoCa5JEsyCxyXJKOHkSxzNCc9IuFgGcWLTk9nsraIjk8SWtfb_Wtt2JIqnQUwefpAMKFRS4IJvUQP7CS6sKNRKrlFrqWxq1xeEogXmUCiqujE2vaKwlgqB7cAUpkRgsORZiTFygerOAQoCDS_KHtt2ftulXdqmhWiBwqMsm22lGWkp6YBCUnMb3QKFqDGM-B71XVjtKcjGHDtqw3ME5p5IDKfAnD39P5XuUCXPfJ6lWcrHKjntJ3WZSm-k0v1Q5VFcU0klUKEYCFvZk_8qOWN1jirHBE1U33lDp8uuRjZ8MkChxI258t0b6ns3159VkT8fw3fPLvW9Dz3fjzx7l9xMjLqWlcax97OdnFGnW9dOAEWOh4lq2ag1Pim57msPYdSD-oRAbQ673iEIq37Lsx0U8u37lZ2S3AtI7inJGZO8v5LuByRnSFpR2JTyJS0EMHBe1-2Zz9sCe4Dn2g47eZYvPdY-AQ1sw0uNFOb8F07RoNoWVaFNsQZmVIP7_ac_AQAA___y3m_O

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, a FROM ab EXCEPT SELECT y AS b, x AS a FROM xy ORDER BY b
----
distribution: local
vectorized: true
·
• except
│ columns: (b, a)
│ ordering: +b
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (b, a)
│     ordering: +b,+a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_b_a_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (y, x)
      ordering: +y,+x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_y_x_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJykk1Fro0AQgN_vVyzz1NItjZq-LBzYNh4E0trTcPQ4gqw6SeWM6-2uVAn578dq0ySS5EjPh4SdGb_5Zt1dgfqTAwPv5XlyN34iF6NxOA2_Tyj54QX3fuhdktCbeA9TElPCybfAfyQ8Jt7Lg_c83aQacheafG3-34vqhvjByAvI_U8SA4VCpPjEl6iA_QILZhRKKRJUSkgTWrUF47QGNqCQFWWlTXhGIRESga1AZzpHYDDlcY4B8hTlzQAopKh5lrdYHrs8juKIR1laA4UHkVfLQjHCaesQltysroGCX2lGXJu6FszWFESltx2V5gsEZu0ojkfABmv6OUtr37Ju3LqJmqjuW9aUNGdb2j1L6xzLUaZ0ViT6xt5XdC3qmpAvU5SYMtIFjjk4PQf7Uw7OfzkMew7OUYdt66oQHXyv88y8-a-SA4M8olxgiNovb4b7o0ybEtnmztxNJkAhx7m-cK0r6tpXl19ltnjdLj8-_MmBb3sDD8_Z9ABVKQqF_cEPdhr0Ol1bZnxMF9htpxKVTPBZiqSt7ZZ-C2oDKSrdZe1uMS42KaUl8uXH7dolWSdJznGS1SfZJ0nDPZK1S7L7JOcMkr1Lcvqk4UnS7al9mlGY5-ItylJgMHh_rg_8bB4wL_CFMgcgfBVvLdacSQVsznOFFB75bxyhRrnMCnMfE2BaVrhef_kbAAD__zxH8Ts=

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b FROM ab EXCEPT ALL SELECT x AS a, y AS b FROM xy ORDER BY b, a
----
distribution: local
vectorized: true
·
• except all
│ columns: (a, b)
│ ordering: +b,+a
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (a, b)
│     ordering: +b,+a
│     estimated row count: 1,000 (missing stats)
│     table: ab@ab_b_a_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (x, y)
      ordering: +y,+x
      estimated row count: 1,000 (missing stats)
      table: xy@xy_y_x_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckt9q2zAUxu_3FOJctVShlnsnGDhNPAgkdWaH0TGCkaOT1MyxPEmmNiHvPuS0S2LSba0ubM4ffef3SdqB-VUAh_BxPh1OHsjVeJIskq9TSr6F8X2UhNckCafhaEEEJRn5EkczIjISPo7C-YIMp9PXckOGietp3f-lsWlJFI_DmNx_JxklAiiUSuKD2KIB_gMYLClUWq3QGKVdatc1TGQD3KOQl1VtXXpJYaU0At-BzW2BwGEhsgJjFBL1rQcUJFqRF52syAKRpVkq0lw2QGGkinpbGt5ZAApJJVw0gOWegqrtcYixYoPA2QnVZAzc29OPgbFzsKYNmjZt06YP1lDS_g-Y3wNjb4IdeepSaYka5RnL0u38V8sFdzPUG0zQRtWtf25u0VbITx4GUChwba8C_4YG7Ob6s843T8cQKES15SRgNPDfNHzXM-y_5yZiNJUqDfaNX5zk9SYNmLOPcoOH4zSq1iuca7Xqeg9h1Al1CYnGHqr-IZiUXYm5CRrF9s9DOlVi71DyT5VYX8n_q9LdmZJ3zrSksC7Uc5pL4OC9rMGFz-sCt0FsjDvs5Ek9d7Lu_g3wtSgMUpiJnzhGi3qbl7mx-Qq41TXu959-BwAA__9n92iJ

statement ok
CREATE TABLE abcde (a INT PRIMARY KEY, b INT, c INT, d INT, e INT, INDEX (b, c, d, e))

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT a, b, c, d, e FROM abcde UNION SELECT a, c, b, d, e FROM abcde) WHERE c = 1 AND d = e ORDER BY a
----
distribution: local
vectorized: true
·
• union
│ columns: (a, b, c, d, e)
│ ordering: +a
│ estimated row count: 2 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_pkey
│         spans: FULL SCAN
│
└── • sort
    │ columns: (a, c, b, d, e)
    │ estimated row count: 1 (missing stats)
    │ order: +a
    │
    └── • filter
        │ columns: (a, b, c, d, e)
        │ estimated row count: 1 (missing stats)
        │ filter: d = e
        │
        └── • scan
              columns: (a, b, c, d, e)
              estimated row count: 10 (missing stats)
              table: abcde@abcde_b_c_d_e_idx
              spans: /1-/2
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyck11v4jwQhe_fXzGaK3gxgnxQrSxVSltSbaQWugn7pRVCJp52o4aYtY3aquK_rxLoFrIN2zYXljweznnsMzyi-ZUjx_Db1cVJNILWMEomyacLBl_C-HSchG1IwovwbAL_w3k8voTWdisYzBmkDCQD2hyJeSoJPo-i8Qieu9KqsdbVhq8fwziEVgrH4LThZDSEloRjoDaM42EYw-l3EMiwUJJGYkEG-Q90cMpwqVVKxihdlh6rhkjeI-8zzIrlypblKcNUaUL-iDazOSHHiZjnFJOQpHt9ZCjJiiyvZCuioFpn81k6kzOaZfIeGZ6pfLUoDN-_LTJMlqIs95xuz8XpmqFa2WdvY8UNIXd2YKMh8v6avZ73PMstadI9Zx92U-cQ-HAMwaDR3K2ZO28xT5S2pHvuvnXgdJDheGU5BA4LPBa4LPDZAQivBuG-BWI3Ma85seUtPbwiqm4jpF-D9N4Vk_9yTK3AKyeccx6NJh-2g77Nrt2INKgh-Y1IzyRKS9Ik_4qMBW6HBV6HBX6HBYMOTtcv3GOYGZsVqe0N6gJVyt4_gj6qAQ_e8oYxmaUqDO05Nzn1a05dp7wOyRvaPIdRK53SlVZp1bvZjiuhqiDJ2M2ps9lExdORsZrE4s8_dVfJOajkNis5dSX3oNJgT8nZVfLrSt5BJb-Zya0r-e9l8upKg4NKR4defMrwOld3s0wix_72676wPH1Y_kDcmHKUkp_qrpKdPCzLQbgWuSGGl-KWhmRJL7KiHPAUudUrWq__-x0AAP__nOkuBA==

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT a, b, c, d, e FROM abcde UNION SELECT  a, c, b, d, e FROM abcde) WHERE c = 1 AND d = e ORDER BY b, c, d, e, a
----
distribution: local
vectorized: true
·
• union
│ columns: (a, b, c, d, e)
│ ordering: +b,+c,+d,+a
│ estimated row count: 2 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +b,+d,+a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +b,+c,+d,+e,+a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_b_c_d_e_idx
│         spans: FULL SCAN
│
└── • filter
    │ columns: (a, c, b, d, e)
    │ ordering: +c,+d,+a
    │ estimated row count: 1 (missing stats)
    │ filter: d = e
    │
    └── • scan
          columns: (a, b, c, d, e)
          ordering: +c,+d,+e,+a
          estimated row count: 10 (missing stats)
          table: abcde@abcde_b_c_d_e_idx
          spans: /1-/2
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJysk29v2jAQxt_vU5zuFYxD4CRIk6VKbkuqIbXQBfZPE0IhvnbRQsJso3aq-O5TAl0hKmyt5heWfL489_Nzlwe0PzOUGH65vjwdDKHRH4wn4w-XBJ_C6Gw0DpswDi_D8wm8hYtodAWN7TEmmBMkBJqAN1fxPNEMH4eD0RCespIqsZbVhM_vwyiERgInIJpwOuxDQ8MJcBNGUT-M4Ozrjj5BjIR5oXkYL9ii_IYCp4RLUyRsbWHK0EOVMND3KLuEab5cuTI8JUwKwygf0KUuY5Q4iecZRxxrNp0uEmp2cZpVshWdqvbZfJbM9Ixnqb5HwvMiWy1yK_dfjoTjZVyGO6Ld8XC6JixW7qm2dfEtoxQ7sIM-yu6a_p33Is0cGzYdsQ-7iUtQAZyA6iHhaOUkKEHKJ-WRCkj1DiJ5NSTxEqRdC73_ZWH7IKtfY_VeZZ__vH0N5ZdTKKUcDCfvtsO49bR5ECmoIfkHkZ5ICqPZsN7HUF6LlN8iFbRIiRapXgun62fe0U-tS_PEdYKagKia7f-l370acPASDyO2yyK3vFf5UKVurVJblM9hfcsbO2yxMglfmyKpcjfHUSVUBTRbt7kVm8Mgf7yyznC8-PMH7SqJo0rBnpLYVfLrSt5RJf8wk6gr-a9l8upKwVGl3jGfpoQ3WXE3SzVK7G5X-5ntcWH5QXxrywEYfy_uKtnJr2XZvps4s0x4Ff_gPjs2izQvxzJB6cyK1-s3vwMAAP__Vm_2-g==

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT * FROM abcde UNION ALL SELECT * FROM abcde) WHERE c = 1 AND d = e ORDER BY a
----
distribution: local
vectorized: true
·
• union all
│ columns: (a, b, c, d, e)
│ ordering: +a
│ estimated row count: 2 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_pkey
│         spans: FULL SCAN
│
└── • filter
    │ columns: (a, b, c, d, e)
    │ ordering: +a
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (a, b, c, d, e)
          ordering: +a
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0k29v2jAQh9_vU5zuFWxGxSSVJkuVaEuqRaKhS9g_Tagy8ZVFDXFmG3UV4rtPCe0KEaAVbX5hyXfH44dfkiXanzkKDL7eDM_DCFqDMBknH4cMPgfxxSgJ2pAEw-ByDG_hKh5dQ2v7KKepIvgUhaMIzodD2NFtw5cPQRxAK4Uz4G04jwbQUnAG1IZRPAhiuPgGEhkWWlEk52RRfEeOE4al0SlZq01VWtYDofqFosswK8qFq8oThqk2hGKJLnM5ocCxnOYUk1RkTrrIUJGTWV5ja6N-vd-W9_SIDC91vpgXVoBkMGWQMlAMCBkmpazKHZysGOqFe7nQOjkjFHzDMByg6K7Y30teZbkjQ-aEbxuu6wJafa_KSwgRRuP3T7H1fTiD_ml7r1KvocRfo7SZW-8_5uY1JHtH5eb9y9z8hpK3V-nFRBtFhtS2Rp-_w8lqh3ekO7o88bem99l0Gzb-awKKyZa6sHTUTR1euZOa0fq_Wr0wKd0Yndaz6-OoBtUFRdatu3x9CIvnlnWG5PzPd7FJ4gdJ_haJb5K8Jql3kOTtd-JNknesU69J8g-STg_lNGF4l-uH20yhwO7T6uzYnhdWP5AzW70AyQ_9UGPHj2X1-O5kbonhtbynATky86zIrMtSFM4saLV68zsAAP__BmPhOQ==

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT * FROM abcde UNION ALL SELECT * FROM abcde) WHERE c = 1 AND d = e ORDER BY b, c, d, e, a
----
distribution: local
vectorized: true
·
• union all
│ columns: (a, b, c, d, e)
│ ordering: +b,+c,+d,+a
│ estimated row count: 2 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +b,+d,+a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +b,+c,+d,+e,+a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_b_c_d_e_idx
│         spans: FULL SCAN
│
└── • filter
    │ columns: (a, b, c, d, e)
    │ ordering: +b,+d,+a
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (a, b, c, d, e)
          ordering: +b,+c,+d,+e,+a
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_b_c_d_e_idx
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0k11r2zAUhu_3Kw7nKlkUGn8UhqDgtnGZIXU6O_tiBKNYp52ZY3mSQjtK_vuw066JacJaNl0IdI706NGb-B7NzxI5hl-uJqdRDL1xlM7SDxMGn8LkbJqGfUjDSXg-g7dwkUwvobe7FItcEnyMo2kMp5MJPNPtw-f3YRJCL4cTcPpwGo-hJ-EEqA_TZBwmcPYVFgxyBpIBMRDIsFKSYrEkg_wbOjhnWGuVkzFKN6X7dkMk75CPGBZVvbJNec4wV5qQ36MtbEnIcSYWJSUkJOmjETKUZEVRttjWLmjnbJHlmcwoK-QdMjxX5WpZGQ6CbZkhw7QWTXmI8zVDtbJP9xorbgi5syUajZGP1uzvXS-K0pImfeTsim7qHHqB10TIOY_i2buHJAMfTiA47u9VcjtKzkuUtuNz_398XsfVfVV83r-Mz-8oeXuVnkyUlqRJ7moE7oAF3oAF_oAFzgDn62feEKuhqo_8nZP7zEYdM_8lYSVkalUZetVNQ6dxJ3lDm3cbtdI5XWmVt3s3y2kLaguSjN10nc0iqh5bxmoSyz-fyjbJOUjyd0jONsnrktyDJG-_k9Mlea91crsk_yDp-FBOc4bXpbrNCokcRw9j-Mz0OLA5IG5M8wdIv6vbFjv7VTc_37UoDTG8FD9oTJb0sqgKY4scudUrWq_f_A4AAP__UwXrgQ==

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, c, d, e FROM (SELECT b, c, d, e FROM abcde INTERSECT SELECT b, c, d, e FROM abcde) WHERE c = 1 AND d = e ORDER BY b
----
distribution: local
vectorized: true
·
• intersect
│ columns: (b, c, d, e)
│ ordering: +b
│ estimated row count: 1 (missing stats)
│
├── • filter
│   │ columns: (b, c, d, e)
│   │ ordering: +b,+d
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (b, c, d, e)
│         ordering: +b,+c,+d
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_b_c_d_e_idx
│         spans: FULL SCAN
│
└── • filter
    │ columns: (b, c, d, e)
    │ ordering: +b,+d
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (b, c, d, e)
          ordering: +b,+c,+d
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_b_c_d_e_idx
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0lN1u2jAYhs93FdZ3BMIV5Ac6WUJKW1ItEoUuQfvRhFCIv9JoIWG2o3aquPfJSbuGrMlG1eUgUl47jx-_AT-A_JEAA_fL9fTMm5HOxAsWwccpJZ9c_3weuF0SuFP3YkHWlESUcEqQXPrzK9JpyMN1xJF4s4XrB3q8bVqXfP7g-i7pRGRMjC45m01Ih5MxwS6Z-xPXJ-dfyRoopBnHWbhFCewbGLCksBNZhFJmQkcPxQSP3wMbUIjTXa50vKQQZQKBPYCKVYLAYBGuE_Qx5Cj6A6DAUYVxUmALI6e4r9araMVXuIr5PVC4yJJ8m0pW2QRQCHahzk5guaeQ5ep5UanCDQIzKpbeBNhgT_9d9DJOFAoUfePQsswZ6Tim7owx5s0W7x-rcywyJo7dbVQya0rGMUrV7sz_3J1VEzVf1Z31lt3ZNSXrGKVJLFWcRqpvHyo5BnVM6ljU0QNzwVEgZ0THVqPJsGZiv8pk-AYmo5rJsNHkWSBPsxJ-sP5Sv_m3KS9s5wrFBgNU811_dLihxc8dsspBdDadAoUEb1THMXrUsXrUMXvUsXvdsYg3t3_GuodclR08VdPUxGmtidEx38RHuctSifVGXlxpUFvpxNC9IN9g2bPMchHhtciiYm75OC9ARcBRqnLUKB-89GlIKoHh9vdZVSUZraRhM8mqk8xWktVMMuokq5VkN5PMOsluJY0OSEaVZNdJwyNIZpU0rJNGraTTtm-3pHCTZHermAODweN18sLt6QL9QriR-kcZ3GZ3BVb_gSSwmzCRSOEq_I4TVCi2caqPkAiYEjnu9-9-BQAA__9f4pZj

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, c, d, e FROM (SELECT b, c, d, e FROM abcde EXCEPT SELECT b, c, d, e FROM abcde) WHERE c = 1 AND d = e ORDER BY b, c, d, e
----
distribution: local
vectorized: true
·
• except
│ columns: (b, c, d, e)
│ ordering: +b,+d
│ estimated row count: 1 (missing stats)
│
├── • filter
│   │ columns: (b, c, d, e)
│   │ ordering: +b,+d
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (b, c, d, e)
│         ordering: +b,+c,+d
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_b_c_d_e_idx
│         spans: FULL SCAN
│
└── • filter
    │ columns: (b, c, d, e)
    │ ordering: +b,+d
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (b, c, d, e)
          ordering: +b,+c,+d
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_b_c_d_e_idx
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0lF1v2jwYhs_fX2E9RyBcQT6grywhpS2phkShS9DWaUIoxE9ptJAw21E7Vfz3yUlZwSNsVF0OIuW2ffnKHfAzyO8pMPDvbkcXwzFpDIbhNPw4ouSTH1xOQr9JQn_kX03JgpKYEk4JkutgckMaNXm0iDkS_-7Kv53WrS3nNMnnD37gk0ZM-sRqkovxgDQ46RNskkkw8ANy-WVnJVDIco7jaIUS2FewYEZhLfIYpcyFjp7LCUP-BKxDIcnWhdLxjEKcCwT2DCpRKQKDabRIMcCIo2h3gAJHFSVpiS3VvPI-X8zjOZ_jPOFPQOEqT4tVJtm-U7iOdHYGsw2FvFCvm0oVLRGYtWM5HADrbOjfi14nqUKBom3tW1Y5Iw3P1uUxxobj6f8vHXoO6RPPbdYq2YaSdYrSbnf2P-7OMUTtN3XnvGd3rqHknKI0SKRKsli13X0lz6KeTT2HenpgIjgK5Izo2Kk16Rom7ptMuu9g0jNMurUmrwJFllfwvf1neuWfphx4nRsUSwxRTdbt3v4LTX-skW2Po4vRCCikeK8antWintOint2inttq9kWyfPg91iUUqipg20tdDedGDb1TPkiAcp1nEs06Du7UMXY6s3QpyJdYlSzzQsR4K_K4nFs9TkpQGXCUqhq1qodhth2SSmC0-nVQ7ZKsoyS3nmSbJPsoyaknWSbJOUrq1pMck-QeJfX2SNYuyTVJ3RNI9i6pa5J6R0nnx77djMJ9mj_OEw4MOi_X2YHb9gK9IFpK_aMMH_LHEqv_PRLYfZRKpHATfcMBKhSrJNPnRwxMiQI3m_9-BgAA__-PI5aj

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT * FROM abcde EXCEPT ALL SELECT * FROM abcde) WHERE c = 1 AND d = e ORDER BY a
----
distribution: local
vectorized: true
·
• except all
│ columns: (a, b, c, d, e)
│ ordering: +a
│ estimated row count: 1 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_pkey
│         spans: FULL SCAN
│
└── • filter
    │ columns: (a, b, c, d, e)
    │ ordering: +a
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (a, b, c, d, e)
          ordering: +a
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_pkey
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0k29r2zAQh9_vUxz3KlmuNP4TGIKA2sZlgTTp4rB1jFBU-5qaOrYnyXSl5LsPO-2amCRbx-YXBt3Jjx79LD2h-Z6iwODqcnQyHENrMAxn4acRwedgejoJgzaEwSg4m8F7OJ9OLqC1PVQ3UcwQXJ0FlzM4GY1gR7sNXz4G0wBaEfTBacPJeACtGPrAbZhMB8EUTr-CQsIsj3mslmxQfEMH54SFziM2JtdV6ameMIx_oOgSJllR2qo8J4xyzSie0CY2ZRQ4UzcpT1nFrI-7SBizVUlaY2sjWb-vi3t-RMKzPC2XmRGgCG4IIoKYgJEwLFRVPsL5ijAv7euCxqoFo3A2DIcDFN0V_bnkeZJa1qyPnW3DdV1AS3pVXkKI4Xj24Tk26UMfZK-9V8ltKDlvUdrMzf2PuXkNSfevcvP-ZW5-Q8nbq_RqUma5jllzvCUyr7783ZQd-7pgveCQ7aQ49rd3NnssWGxcMiRM-da2pNMh6XZIeh2Sfodkr9Pu62Rxt7uFhJPSCpAOSZekR9In2dubSK-RiP-WnzRlU-SZ4WYyO1fqNlY6cqp8OF7wOm-TlzriS51H9dz1cFKD6kLMxq67znowzF5axmpWy193c5PkHCT5WyRnk-Q2Se5BkrffyWmSvDc4uZskr0nyD5J6h3KaE96m-cN1EqPA7vNztOP18mD1gVqY6gCEd_lDja0OrUFxq1LDhBfqngdsWS-TLDE2iVBYXfJq9e5nAAAA__9aXAZS

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT * FROM (SELECT * FROM abcde INTERSECT ALL SELECT * FROM abcde) WHERE c = 1 AND d = e ORDER BY b, c, d, e, a
----
distribution: local
vectorized: true
·
• intersect all
│ columns: (a, b, c, d, e)
│ ordering: +b,+d,+a
│ estimated row count: 1 (missing stats)
│
├── • filter
│   │ columns: (a, b, c, d, e)
│   │ ordering: +b,+d,+a
│   │ estimated row count: 1 (missing stats)
│   │ filter: (c = 1) AND (d = e)
│   │
│   └── • scan
│         columns: (a, b, c, d, e)
│         ordering: +b,+c,+d,+e,+a
│         estimated row count: 1,000 (missing stats)
│         table: abcde@abcde_b_c_d_e_idx
│         spans: FULL SCAN
│
└── • filter
    │ columns: (a, b, c, d, e)
    │ ordering: +b,+d,+a
    │ estimated row count: 1 (missing stats)
    │ filter: (c = 1) AND (d = e)
    │
    └── • scan
          columns: (a, b, c, d, e)
          ordering: +b,+c,+d,+e,+a
          estimated row count: 1,000 (missing stats)
          table: abcde@abcde_b_c_d_e_idx
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0k21r4koUx9_fT3E4r_R6Ss2DcBkQpq0pV7DaTWQfWERi5tSGjYk7M6Fdit99SWy3GtTdLrt5EZgzJ7_5zT8zT2i-Zigw-Hg7uhiOoTUYRtPo3YjgfRBeTqKgDVEwCq6m8C9ch5MbaO0P40WiGIbjaRBGVfliNIIDHW348H8QBtBKoA9OGy7GA2gp6AO3YRIOghAuP8GCICFQBEwQI2FeKB7HKzYoPqODM8K1LhI2ptBV6aluGKpHFF3CNF-XtirPCJNCM4ontKnNGAVO40XGIceK9XkXCRXbOM1qbG0n6_d8MU_mas7zVD0i4VWRlavcCIhpxwwJo3Vclc9wtiEsSvu6rrHxklE4O6LDAYruhn7d9TrNLGvW586-6LYuoCW9KkIhxHA8_e85SelDH2SvfVTJbSg5b1Hajc_9-_F5DVf3t-Lz_mR8fkPJO6r0alLmhVasWe2JzKovf9ZyYF83rJccsZ2sz_39nU2_rVns30AkzPjOtqTbIel3SDodkl6HZK_T7ut0eX94CgknpRUgHZIuSY-kT7J3NJReIxT_Lf8pZLMucsPNcA6u1G2sdOZUEbFa8jZyU5Q64VtdJHXvdjipQXVBsbHbWWc7GOYvU8Zqjlc_bukuyTlJ8vdI7i7Ja5LckyTvuJPTJHlvcHJ2SW6T5J8k9U7lNCO8y4qHeapQYPf5OTvwenmw-iBemuoARPfFQ42tzq1BcRdnhglv4i88YMt6leapsWmCwuqSN5t_vgcAAP__6WYQDA==

# Regression test for #64181. Ensure that a projection on top of an ordered
# UNION ALL correctly projects away ordering columns.
query T
EXPLAIN (DISTSQL,VERBOSE) WITH q (x, y) AS (
  SELECT * FROM (VALUES ('a', 'a'), ('b', 'b'), ('c', 'c'))
  UNION ALL
  SELECT * FROM (VALUES ('d', 'd'))
)
SELECT 'e', y FROM q
ORDER BY x
----
distribution: local
vectorized: true
·
• project
│ columns: ("?column?", y)
│
└── • render
    │ columns: ("?column?", x, y)
    │ ordering: +x
    │ render ?column?: 'e'
    │ render x: column1
    │ render y: column2
    │
    └── • union all
        │ columns: (column1, column2)
        │ ordering: +column1
        │ estimated row count: 4
        │
        ├── • sort
        │   │ columns: (column1, column2)
        │   │ estimated row count: 3
        │   │ order: +column1
        │   │
        │   └── • values
        │         columns: (column1, column2)
        │         size: 2 columns, 3 rows
        │         row 0, expr 0: 'a'
        │         row 0, expr 1: 'a'
        │         row 1, expr 0: 'b'
        │         row 1, expr 1: 'b'
        │         row 2, expr 0: 'c'
        │         row 2, expr 1: 'c'
        │
        └── • values
              columns: (column1, column2)
              size: 2 columns, 1 row
              row 0, expr 0: 'd'
              row 0, expr 1: 'd'
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckl9vmzAUxd_3Ka7uC2FzFf5kL35KurANiUIHabdpqiYKtx0axalt1lZVvvtkWNcGlaipH5D_HJ_f8b3co7qukWPw7ThahDFMlmG2yr5EDE6D9DDJAhu-hqvPcA2TWwZ3NiwymGRBFHxYwVv4mCZHMDldRCdBBhMrtxhYuWUzmFjnZn7ezwszLyzbhpM4TGJYRBGMeZRGW1q2bT9ILLIY3PW6a0jSZZDC4Xe4RYaNKCnOr0gh_4EunjFcS1GQUkKarftOEJa3yB2GVbNutdk-Y1gIScjvUVe6JuRYiyKv4U9et6TAmTrIsCSdV3Wn3zAUrX68rXR-ScjdJ7hwidzZsFcS3an7IqI3ILr7EDMhNcmpt0XCufsOx3D-AOeN4h4pQpYkqXwO8kymWByI9dTfVqfUlCS5aTznPFulYfyJwdxlMPdGszqDrP4-peljzLZjJK3mhjr3R6GzAXS2DzQltRaNohd1fvi8A9eUk8pL6suvRCsLOpai6LT9MumMuo2SlO5P_X4RNt2RawiS8qv__X3q5O508racnKdOztDJe20md-jk73SajWfyh06znU7vd73ujOFFLW5-ViVydP6Ng2c-DwPNhfxSmR8g-yVuOtvV3dq07yKvFTE8yn_TkjTJq6qplK4K5Fq2tNm8-RsAAP__6CbDLw==

# Regression tests for #64062. Use a streaming set operation even though the
# ordering is not required.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b, c FROM abcde UNION SELECT b, c, d FROM abcde
----
distribution: local
vectorized: true
·
• union
│ columns: (a, b, c)
│ estimated row count: 2,000 (missing stats)
│
├── • scan
│     columns: (a, b, c)
│     ordering: +a
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_pkey
│     spans: FULL SCAN
│
└── • scan
      columns: (b, c, d)
      ordering: +b,+c,+d
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_b_c_d_e_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckVFr2zAUhd_3K8R92sgNtZ03PXlrMjCkSRdnYzCMUaTbzNSxPEmmLcH_fUhp1sQ0Y6sfBLpHOufT8R7srxo4zL7fzj9mC_Z-muXr_Msc2bfZ6tMyn31g-Ww-u14zgWyDTLLPq-UNExupiH1dZMvFUfciMnWiA0KjFS3EjizwHxBDgdAaLclabfxoHw5k6hF4hFA1bef8uECQ2hDwPbjK1QQc1mJT04qEInMVAYIiJ6o62IasNKzlppSlKqms1CMgXOu62zWWH9kAIW-FH4yh6BF0514SrRNbAh6fIGZT4FGPb6OML1O29_R0ivdc7b_gJQO8-CLeC5U2igypc540HmGajDCdjKDoX3nLtLKuaqS7SoYXMU0wnVxEnAwQk_9pcEW21Y2ls8xLSdEgaRz7h5Da0qEAqzsj6dZoGc4etstgFAaKrDuoyWGTNUGKfYIhsfvT8KlT_FanaOiU_NVpcuYUnTsVCHe1figrBRyi52_8ynL8wF8QW-vLzn_qh2C7fmp9VXeitoRwI-5pSo7Mrmr8z5fAnemo79_9DgAA__-r8lFs

# Use a streaming set operation even though the ordering is not required.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b, c FROM abcde INTERSECT SELECT b, c, d FROM abcde
----
distribution: local
vectorized: true
·
• intersect all
│ columns: (a, b, c)
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (a, b, c)
│     ordering: +a
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_pkey
│     spans: FULL SCAN
│
└── • scan
      columns: (b, c, d)
      ordering: +b,+c,+d
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_b_c_d_e_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckt9r2zAQx9_3V4h7asmF2s6bYOCu8cCQH10cxmAEo1iX1NSxPEmmLSH_-5CTrrZJtrV6EOjuq-997qQ9mF8FcIh-3E9u4xm7GsfJMvk2QfY9WnyZJ9E1S6JJdLdkAtkaWca-LuZTJtaZJBbPltEiccmTxgmQyZYGEEolaSZ2ZID_BB9WCJVWGRmjtAvtG0Esn4F7CHlZ1daFVwiZ0gR8Dza3BQGHpVgXtCAhSd94gCDJirxobJtaYbOn6zRLZUppLp8B4U4V9a40_JUNEJJKuMAQVgcEVdu3isaKLQH3W4jxGLh3wI9R-pcpq0d6aeOdxvs_eEEPz7-I90ZVl0pL0iQ7RCt381-SMz1OSW8pITuvboJui8uXinjrY9xOJoBQ0MZehf4Aw2CA4Whw_Vnn24duCBDmteUs9DEMMBxdbH_Uaz94z-ssyFSqNNQfw9lKXq_S0HfDILml43CNqnVG91pljfZ4nDdGTUCSscdscDzEZZMKXAVNYvfn9dpO_juc_LaT13cK_uo06jh5XacVwqZQT2kugYN3WsMz2-sCd0FsjRt28qCeGlv3GwzwjSgMIUzFI43Jkt7lZW5sngG3uqbD4dPvAAAA___4bm7U

# Use a streaming set operation even though the ordering is not required.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, c, d FROM abcde INTERSECT ALL SELECT b, c, d FROM abcde
----
distribution: local
vectorized: true
·
• intersect all
│ columns: (b, c, d)
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (b, c, d)
│     ordering: +b,+c,+d
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_b_c_d_e_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (b, c, d)
      ordering: +b,+c,+d
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_b_c_d_e_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJy0kt9r2zAQx9_3V4h7aumF2s6bYOCu8cCQH11sxmAYo1gX18yxPEmmHSH_-5CzrrFJNjqYHgS6O32-3ztpD-Z7DRyiLw_zu3jJrmZxkiaf5sg-R-sPqyS6Zkk0j-5TtkFWIJPs43q1YGJTSGLxMo3WiUvezeeX6wChUZKWYkcG-FfwIUNotSrIGKVdaN8XxPIZuIdQNW1nXThDKJQm4Huwla0JOKRiU9OahCR96wGCJCuqusf2WmG_55u8yGVOeSWfAeFe1d2uMfzFGyAkrXCBCWQHBNXZV0VjRUnA_ROL8Qy4d8B_c-n_T5fByKV_0eWrua5RWpImOTCWuZt_KznT6oJ0SQnZVXsbDDtNf7TEh38EEGra2qvQv8EwuMFwenP9Xlfl4zAECKvOchb6GAYYTi-2Px21H7zlkdZkWtUYGo_hrJI3Upr4bhgkSzoO16hOF_SgVdHXHo-rHtQHJBl7zAbHQ9z0qcApaBK73693SvLfQPJPSd6YFPyRNB2QvCEpQ9jW6imvJHDwfq3Jme1lgbsgSuOGnTyqpx7rfoMBvhW1IYSF-EYzsqR3VVMZWxXAre7ocHj3MwAA__-xwXJp

# Use a streaming set operation even though the ordering is not required.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT b, c, d FROM abcde EXCEPT SELECT a, d, e FROM abcde
----
distribution: local
vectorized: true
·
• except
│ columns: (b, c, d)
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (b, c, d)
│     ordering: +b,+c,+d
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_b_c_d_e_idx
│     spans: FULL SCAN
│
└── • scan
      columns: (a, d, e)
      ordering: +a
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyck1Fr4kAQgN_vVyzz1NIpmsS-LBykpzkQtHpGjsIhYc2ONjRmc7sb2iL-9yOxtjGop81DYGdnv_lm2F2D-ZsCh-BxPLjvP7CrXj-chr8GyH4Hkx-jMLhmYTAIulM2RxYjk-znZDRkYh5LYsFjNxhPdwkCmURGtQRAyJSkB7EiA_wPODBDyLWKyRily9C6SujLV-BthCTLC1uGZwix0gR8DTaxKQGHqZinNCEhSbfagCDJiiStsFUtv_pH8yiOZERRIl8BoavSYpUZvpMHhDAXZeAWZhsEVdjPisaKJQF3aor9HvD2Br9m6Ry3zJ_pra73Prpz9NyGnnOJXi8xNsli23L33XwHfRd9DxBGWpImydlH7JiJ1zBxv2TinWNy1KHTcPCOOnyWLjK1Je9VnpUn_5dyoJEh6SWFZEd5q7PfyvQtJ757I_eDASCktLBXvnODvnuDvndz_V0ny6f9UNl5Yc-Y_12j984l85-QyVVmqDmDg5XajUq3TjkJkkvaTtaoQsc01iqucrfLUQWqApKM3e6620U_220Zq0msPt5ZneScJHnHSU6T5J4kdfZITp3kNkneBSS3TvKapM5J0t2pOc0QFql6iRIJHNrv3-2B3-6D8oBYmvIChE_qpcKW19MAX4jUEMJQPFOPLOlVkpVPMwZudUGbzbd_AQAA__-RwvKB

# Use a streaming set operation even though the ordering is not required.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b, c FROM abcde EXCEPT ALL SELECT b, c, d FROM abcde
----
distribution: local
vectorized: true
·
• except all
│ columns: (a, b, c)
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (a, b, c)
│     ordering: +a
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_pkey
│     spans: FULL SCAN
│
└── • scan
      columns: (b, c, d)
      ordering: +b,+c,+d
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_b_c_d_e_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJycklFr2zAQx9_3KcQ9tfRCLedNMHCXeBBImiwOozCCUaxLaupYniTTlpDvPuQ0q2OSbZ0eBDr99b_fnW4H9mcBAuKH2fhudM-uhqNkkXwbI_sez79Mk_iaJfE4HiyYRLZClrGv8-mEyVWmiMUPg3i2YHfj8VHkFchUSwQIpVZ0L7dkQfwADkuEyuiMrNXGh3aNYKReQAQIeVnVzoeXCJk2BGIHLncFgYCFXBU0J6nI3AaAoMjJvGhsm1xRs6fVE70CwkAX9ba04kgOCEklfaAHyz2Crt17KuvkhkDwFttoCCLY4__h8ct4qzRLVUpprl7alG-t-xfKsEPJL1K-w9WlNooMqROwpX_5N8mZUidkNpSQm1a34Wmli9eKRGsyAKGgtbuK-A1G4Q1G_ZvrzybfPJ6GAGFaO8EijlGIUf9i7f1O7eFHfmhOttKlpW4PzmYKOpl63HeC1IYOnbW6NhnNjM4a7eE4bYyagCLrDrfh4TAqmyvuMxiS298D1nbiH3AK20686xT-0al_4hScMi0R1oV-TnMFAoK31TuzHRf4B3JjfbOTR_3c2PpRsCDWsrCEMJFPNCRHZpuXuXV5BsKZmvb7T78CAAD__-Xobf0=

# Do not use a streaming set operation for UNION ALL.
query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b, c FROM abcde UNION ALL SELECT b, c, d FROM abcde
----
distribution: local
vectorized: true
·
• union all
│ columns: (a, b, c)
│ estimated row count: 2,000 (missing stats)
│
├── • scan
│     columns: (a, b, c)
│     estimated row count: 1,000 (missing stats)
│     table: abcde@abcde_pkey
│     spans: FULL SCAN
│
└── • scan
      columns: (b, c, d)
      estimated row count: 1,000 (missing stats)
      table: abcde@abcde_pkey
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckNFq2zAUhu_3FOK_2kChtnenq3WNBwbX6eJsDIYpinWamTqWJ8l0Jfjdh5RmTUI2suhCoKNf3_l0NrA_Wwik3-7y66xgb6dZuSg_55x9TecfZ2X6jpVpnt4smORsyVnNPs1nt0wua0XsS5HNCnad57uMD3Cm9jLg6LSiQq7JQnxHjIqjN7oma7XxpU0IZOoXRMTRdP3gfLniqLUhiA1c41qCwEIuW5qTVGSuInAocrJpAzb0-hD2-_6RnsFxo9th3VmxkwJH2UtfmKAaOfTgXltZJ1cEEe-5ZVOIaOSX6cXn673M9Ry95Egv_qveq5Ul08iWDZ02igypA7FqPPGPQk90f5UcBU8bRUdGyf8MbE62152lizpNYu9OakXb_1o9mJrujK5DdnucBVAoKLJue5tsD1kXrmLfwZBc_xnoPim-lBQdk5J_kt4fkKJDUsXx0Oqn-0ZBIHpZkxPbbsE_kCvrh13-0E8Bu3ju_ageZGuJ41Y-0pQcmXXTNdY1NYQzA43jm98BAAD__6TbTXE=

# Regression test for #69497. Ensure the merge ordering for streaming set ops
# matches the input ordering.
statement ok
DROP TABLE abc;

statement ok
CREATE TABLE abc (a INT, b INT, c INT, INDEX (a, b, c DESC));
CREATE TABLE def (d INT PRIMARY KEY, e INT, f INT);

query T
EXPLAIN (VERBOSE, DISTSQL) SELECT d, e, f FROM def EXCEPT SELECT a, b, c FROM abc ORDER by d, e
----
distribution: local
vectorized: true
·
• except all
│ columns: (d, e, f)
│ ordering: +d
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (d, e, f)
│     ordering: +d
│     estimated row count: 1,000 (missing stats)
│     table: def@def_pkey
│     spans: FULL SCAN
│
└── • scan
      columns: (a, b, c)
      ordering: +a,+b,-c
      estimated row count: 1,000 (missing stats)
      table: abc@abc_a_b_c_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJycklFr2zAQx9_3KcQ9tfRCbedNMHCbeBBI6swOo2MEI1vn1NSxPEmmLSHffdhp1tik2zo9GHSn-9_v_r4dmJ8lcAjul_Ob2R27mM7iVfx1juxbEN2GcXDJ4mAeTFZMIiNkOfsShQsmKWfB_SRYro5pgSxFlh3SIs1YGE2DiN1-7woBoVKS7sSWDPAf4MIaodYqI2OUbkO77sFMPgN3EIqqbmwbXiNkShPwHdjClgQcViItKSIhSV87gCDJiqLsZCXlvqQ8qR_pBRAmqmy2leFHdkCIa9EGRrDeI6jGvrUxVmwIuHvCNZsCd_b4f2huH02kmS_SLBFJmmRJIZ9P-V7N-xc-b8Dnvsv3htVUSkvSJHtI67byb0_ODLkgvaGYbFhfe_0ZVy818eNe3MzngFBSbi989wp97wr98ejysy42D_0QIISN5cx30ffQH787-3gwu_eRfxORqVVlaOjB2U7OoNPIbZ0guaGDs0Y1OqOlVln39nANO6EuIMnYQ9Y7XGZVl3LbDprE9vdqnSq5H1DyTpXcoZL3R6VxT8npM60R8lI9JYUEDs7rGZ35HA-0BWJjWrPjB_XUybarYIDnojSEsBCPNCVLeltUhbFFBtzqhvb7T78CAAD__5tLaz4=

# Example where the interesting orderings do not include all columns.
statement ok
CREATE TABLE abcd (a INT, b INT, c INT, d INT, INDEX (a, b, c DESC) STORING (d));
CREATE TABLE efgh (e INT PRIMARY KEY, f INT, g INT, h INT)

query T
EXPLAIN (VERBOSE, DISTSQL) SELECT e, f, g, h FROM efgh EXCEPT SELECT a, b, c, d FROM abcd ORDER by e, f
----
distribution: local
vectorized: true
·
• except all
│ columns: (e, f, g, h)
│ ordering: +e
│ estimated row count: 1,000 (missing stats)
│
├── • scan
│     columns: (e, f, g, h)
│     ordering: +e
│     estimated row count: 1,000 (missing stats)
│     table: efgh@efgh_pkey
│     spans: FULL SCAN
│
└── • sort
    │ columns: (a, b, c, d)
    │ estimated row count: 1,000 (missing stats)
    │ order: +a,+b,-c,+d
    │ already ordered: +a,+b,-c
    │
    └── • scan
          columns: (a, b, c, d)
          ordering: +a,+b,-c
          estimated row count: 1,000 (missing stats)
          table: abcd@abcd_a_b_c_idx
          spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyckm9r2z4Qx5__XoW4Ry29UP_JI8EP3DYeBNKms8PoGMEo1sUxdSxPkmlLyXsfctbV8dpumR4IdDp973Nf3TOY7xVwiO9uZxfTG3YymaaL9PMM2Zc4uZyn8SlL41l8tWCEbI2sQLZhn5L5NaN1sWHx3VV8u3hJEchWyHJkcp8iVrlk82QSJ-zyaycACLWSdCO2ZIB_Ax-WCI1WORmjtAs9dwlT-QjcQyjrprUuvETIlSbgz2BLWxFwWIhVRQkJSfrcAwRJVpRVJ-vYIrdlzT09AcKVqtptbXivC0BIG-FiI1juEFRrX2sZKwoC7vfgphPg3g7_jc8_5HPGRG7LRLbK8qyUj33IVx__BjIYQPrHQKZKW9LnwSFf5J9hFJxhFI4wGp8BwlbYfMMqqjkL3yUJByTBuySvAG2ttCRN8oBg6V7-KeWNdq5JF5SSnTfn4WFLi6eG-Mu8XsxmgFDR2p4MWj39X5fF5vcwIMxby1nkYxRgFGI0fteG8cCG8JgPScg0qjY0tOPNSt6g0sh3ppAsaG-yUa3O6VarvMvdH-edUBeQZOz-NtwfpnV35bsKmsT21zz1lfwPlYIDJa-v5A2VgiOYgr5SMFQKP1Qaf8S0RFhX6iErJXDwfq7RG9vLAvdAFMZ9W7pRD52smy8DfC0qQwjX4p4mZElvy7o0tsyBW93SbvffjwAAAP__n2i1vg==

# Regression test for #68702. Ensure correct behavior when a column is projected
# twice on the left side.
statement ok
CREATE TABLE t68702 (k INT8 PRIMARY KEY)

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT tableoid AS col1, tableoid AS col2, k AS col3 FROM t68702
EXCEPT ALL SELECT * FROM (VALUES (NULL, 2505326470:::OID, (-1643624263):::INT8))
----
distribution: local
vectorized: true
·
• except all
│ columns: (col1, col2, col3)
│ estimated row count: 1,000 (missing stats)
│
├── • project
│   │ columns: (tableoid, tableoid, k)
│   │ ordering: +k
│   │
│   └── • scan
│         columns: (k, tableoid)
│         ordering: +k
│         estimated row count: 1,000 (missing stats)
│         table: t68702@t68702_pkey
│         spans: FULL SCAN
│
└── • values
      columns: (column1, column2, column3)
      size: 3 columns, 1 row
      row 0, expr 0: 2505326470
      row 0, expr 1: -1643624263
      row 0, expr 2: CAST(NULL AS OID)
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyUUm1r2zwU_f78CnE_JU8VasltWgQDZ40HBjfp4rQURiiafZuaKJYnyetKyX8ftvsSm3ZbhbGto6tzzzncR7A_FAgIry_iSTQjg2mULJOvMSVX4eLzPAmHJAnj8GxJnPyuUOcZmSQk1YrRPsIp2Tz9-uTLYn5O3Pj0xOMkvD4LL5ZkEsfPXP-354OrSXwZJmQwu4xjSvixd-zz8dGJJ4SYR1NKBiM2PvLH_IiP_aEQIpotT4dDoFDoDGdyixbEN2CwolAanaK12tTQY1MQZb9AeBTyoqxcDa8opNogiEdwuVMIApa1hwXKDM2hBxQydDJXDW2rPmg_N-UGH4DCmVbVtrCCbF79A4WklDU4AgrzygkScFo_DFY7CrpyrwKsk2sEwfYUR1MQ3o7-u2ilU6nIT6kqtMQ7ZF3drQCfBowG_F0BvCeAvSvgtW9VaJOhwazTcFXf_FvJGy7O0awxQTcvD3nXwfKhRLE3NkBB4a0bBP4BDdgBDfjB8JPJ13dd6CV81oTvv-vd73nnHwl_gbbUhcV-Bm928nqdRqxOArM1tslaXZkUL4xOm9p2O2-IGiBD69pT3m6iojlidQeDcvsyO_tM7ANMfJ-J9Zn4H5n8DpPX1bSicKv0_U2egQDvaY3eeD0vqC_Ita3DTu70fUNbj4IFcSuVRQrncoNTdGi2eZFbl6cgnKlwt_vvdwAAAP__X4d6wQ==

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b AS b1, b AS b2 FROM abc EXCEPT SELECT a, b, c FROM abc ORDER by a, b1
----
distribution: local
vectorized: true
·
• except
│ columns: (a, b1, b2)
│ ordering: +a,+b1
│ estimated row count: 1,000 (missing stats)
│
├── • project
│   │ columns: (a, b, b)
│   │ ordering: +a,+b
│   │
│   └── • scan
│         columns: (a, b)
│         ordering: +a,+b
│         estimated row count: 1,000 (missing stats)
│         table: abc@abc_a_b_c_idx
│         spans: FULL SCAN
│
└── • scan
      columns: (a, b, c)
      ordering: +a,+b,-c
      estimated row count: 1,000 (missing stats)
      table: abc@abc_a_b_c_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyck1Fr2zAQgN_3K8Q9tVShkZy-CAZuGw8Cad3ZYXSMEGT5mpo5lifJtKPkvw_bzeKYJFvqhxDpzt99d5bewP7KQUDw-DC9ntyTs_EknsVfp5R8C6KbMA7OSRxMg9sZkZQk5DomCdv84eRLFN4RmSgSPN4GD7NuKiVqGw6jcRCRm-9NhAGFQqd4L1doQfwABnMKpdEKrdWm3nprEibpK4ghhawoK1dvzykobRDEG7jM5QgCZjLJMUKZorkcAoUUnczyBisT5ctELeQiWahFlr4ChVudV6vCikYEKMSlrFcDoBBWThCfUZ9Tn8N8TUFXblvYOrlEEKxjOhmDGK7px2TZibKUqK7vIT_e82On-I0z67JCuUu-K_c-Fa-ekknRYNpOyjuo4fU0-Ic0vP_T4MdMRj0T76DJVqAqdMvfqT-v3_xXyp527tAsMUYXlpej3YZmv0sUm7tzPZ0ChRyf3JnPLqjPL6jvDc4_m2z5vLvVO6yHe7_q9T465StEaEtdWOzPYG-lYa_SgNWTwHSJ7WStrozCB6NVk9suwwbUbKRoXRvl7WJSbELWGZSrv3etS2JHSd5hEuuT-FHSaIfEuiTeJ3knkHiX5PVJo6Okq2NzmlN4yvXLIktBwPD9Gez52TxQvyCXtj4A8bN-abD18bQgnmRukcKd_IljdGhWWVFfUAXCmQrX609_AgAA__8_bvjt

query T
EXPLAIN (DISTSQL,VERBOSE) SELECT a, b AS b1, b AS b2 FROM abc INTERSECT SELECT a, c, b FROM abc ORDER by a, b2
----
distribution: local
vectorized: true
·
• intersect
│ columns: (a, b1, b2)
│ ordering: +a,+b1
│ estimated row count: 1,000 (missing stats)
│
├── • project
│   │ columns: (a, b, b)
│   │ ordering: +a,+b
│   │
│   └── • scan
│         columns: (a, b)
│         ordering: +a,+b
│         estimated row count: 1,000 (missing stats)
│         table: abc@abc_a_b_c_idx
│         spans: FULL SCAN
│
└── • scan
      columns: (a, c, b)
      ordering: +a,+b,-c
      estimated row count: 1,000 (missing stats)
      table: abc@abc_a_b_c_idx
      spans: FULL SCAN
·
Diagram: https://cockroachdb.github.io/distsqlplan/decode.html#eJyck19vmzAQwN_3Kax7alVHBZO-WJpE2zAJKS0dRNOmKYqMuaZoBDPbqJ2qfPfJpH8SlLClPEThOH73u-P8DOZ3BRyi73fTy_iWnEzibJZ9nVLyLUqvkiw6JVk0ja5nRFCSk8uM5P7rH0a-pMkNEbkk8e0sSjOX9p4tXd5bRpJOopRc_eg4DCjUqsBbsUID_Cf4MKfQaCXRGKVd6LlLiIsn4B6Fsm5a68JzClJpBP4MtrQVAoeZyCtMURSozz2gUKAVZdVhRS5DkcuFWOQLuSiLJ6Bwrap2VRveiVAigULWCBcYAYWktZyEPg0DGjKYrymo1r7XNlYsEbi_JRtPgHtr-jFf_0jfA7JsSJb1ZP1jZCelsWUt7TnbNX2pGjgLXaDG4mVsBzWCngb7kEbwnxpDAxn3TIKDJu8Cba02_J36c_fmv1L2tHODeokZ2qQ5H-82NPvTIN86TpfTKVCo8N6ehP4ZDYMzGrLR6WddLh92Q719OPwhLnrtj4_5ECmaRtUG-2PYW8nrVRr5bhhYLHEzXKNaLfFOK9nlbm6TDtQFCjR28zTY3MT16yNjNYrV2zpvk_xBEjtM8vokNkga75D8bRLrk4IjSGybFPRJ40HSxVB3cwr3lXpclAVw8F6u0Z6f1wvcC2Jp3AJkD-qxw7oNNcDvRWWQwo34hRO0qFdl7c6oBG51i-v1p78BAAD__-PR_m4=
