Repository navigation
Commit a03258c
committed
fix: keep input qualifiers in INTERSECT ALL and EXCEPT ALL
Both sides used the same name for their synthetic row number column,
so the sides were always requalified as `left` and `right`, and the
final projection rebuilt every output column as `left.<name>`. Queries
that referred to the original qualifier after the set operation failed,
and two columns with the same name from different relations on one side
collapsed into duplicate `left.x` outputs.
Give each side its own row number name so requalification only happens
when the user's columns conflict, join on the columns the requalified
schemas actually contain, and alias the output back to the left input's
qualifiers and names.
Signed-off-by: Stefan Wang <[email protected]>1 parent 09c4eaa commit a03258c
3 files changed
Lines changed: 119 additions & 48 deletions
File tree
- datafusion
- core/tests/sql
- expr/src/logical_plan
- substrait/tests/cases
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1549 | 1549 | | |
1550 | 1550 | | |
1551 | 1551 | | |
| 1552 | + | |
| 1553 | + | |
| 1554 | + | |
1552 | 1555 | | |
1553 | | - | |
1554 | | - | |
1555 | | - | |
1556 | | - | |
1557 | | - | |
1558 | | - | |
1559 | | - | |
1560 | | - | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
| 1562 | + | |
1561 | 1563 | | |
1562 | 1564 | | |
1563 | 1565 | | |
1564 | | - | |
| 1566 | + | |
| 1567 | + | |
1565 | 1568 | | |
1566 | 1569 | | |
1567 | 1570 | | |
1568 | 1571 | | |
1569 | 1572 | | |
1570 | 1573 | | |
1571 | 1574 | | |
1572 | | - | |
1573 | | - | |
1574 | | - | |
| 1575 | + | |
1575 | 1576 | | |
1576 | 1577 | | |
1577 | | - | |
1578 | | - | |
| 1578 | + | |
| 1579 | + | |
| 1580 | + | |
1579 | 1581 | | |
1580 | 1582 | | |
1581 | 1583 | | |
1582 | 1584 | | |
1583 | 1585 | | |
1584 | 1586 | | |
1585 | | - | |
1586 | | - | |
1587 | | - | |
1588 | | - | |
| 1587 | + | |
| 1588 | + | |
| 1589 | + | |
| 1590 | + | |
| 1591 | + | |
| 1592 | + | |
1589 | 1593 | | |
1590 | | - | |
1591 | | - | |
1592 | | - | |
1593 | | - | |
1594 | | - | |
1595 | | - | |
1596 | | - | |
| 1594 | + | |
| 1595 | + | |
1597 | 1596 | | |
| 1597 | + | |
| 1598 | + | |
1598 | 1599 | | |
1599 | 1600 | | |
1600 | | - | |
| 1601 | + | |
| 1602 | + | |
1601 | 1603 | | |
1602 | 1604 | | |
1603 | | - | |
1604 | | - | |
1605 | | - | |
1606 | | - | |
1607 | | - | |
1608 | | - | |
1609 | | - | |
1610 | | - | |
1611 | | - | |
1612 | | - | |
1613 | | - | |
1614 | | - | |
1615 | | - | |
1616 | | - | |
1617 | | - | |
1618 | | - | |
1619 | | - | |
1620 | | - | |
1621 | | - | |
1622 | | - | |
| 1605 | + | |
| 1606 | + | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
1623 | 1624 | | |
1624 | 1625 | | |
1625 | 1626 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1659 | 1659 | | |
1660 | 1660 | | |
1661 | 1661 | | |
1662 | | - | |
| 1662 | + | |
| 1663 | + | |
| 1664 | + | |
1663 | 1665 | | |
1664 | 1666 | | |
1665 | 1667 | | |
| |||
1678 | 1680 | | |
1679 | 1681 | | |
1680 | 1682 | | |
1681 | | - | |
| 1683 | + | |
| 1684 | + | |
| 1685 | + | |
1682 | 1686 | | |
1683 | 1687 | | |
1684 | 1688 | | |
| |||
0 commit comments