You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
'SELECT "A", "B", 12 :: INT AS "TWELVE" FROM ( SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT) ) WHERE (("A" > 1{POSTFIX}) AND ("A" > 2{POSTFIX}))',
1651
1651
),
1652
+
# Flattened if the dropped columns are not used in filter
1653
+
(
1654
+
lambdadf: df.filter(col("A") >=1)
1655
+
.select(col("A").alias("C"), col("B").alias("D"))
1656
+
.filter(col("C") >2)
1657
+
.select(col("C")),
1658
+
'SELECT "A" AS "C" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) WHERE (("A" >= 1{POSTFIX}) AND ("C" > 2{POSTFIX}))',
1659
+
),
1660
+
# Flattened if the dropped columns are not in the filter clause's dependent columns
1661
+
(
1662
+
lambdadf: df.filter(col("A") >=1)
1663
+
.select(col("A").alias("C"), col("B").alias("D"))
1664
+
.filter((col("C") +1) >2)
1665
+
.select(col("C")),
1666
+
'SELECT "A" AS "C" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) WHERE (("A" >= 1{POSTFIX}) AND (("C" + 1{POSTFIX}) > 2{POSTFIX}))',
1667
+
),
1652
1668
# Not fully flattened, since col("A") > 1 and col("A") > 2 are referring to different columns
'SELECT "B", "A" FROM ( SELECT * FROM ( SELECT "A", "B" FROM ( SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT) ) ) WHERE ("$1" > 1{POSTFIX}) )',
1673
1689
),
1690
+
# Not flattened if a dropped column is used in the filter clause
1691
+
(
1692
+
lambdadf: df.filter(col("A") >=1)
1693
+
.select(col("A"), col("B").alias("D"))
1694
+
.filter(col("D") >-3)
1695
+
.select(col("A").alias("E")),
1696
+
'SELECT "A" AS "E" FROM (SELECT "A", "B" AS "D" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) WHERE (("A" >= 1{POSTFIX}) AND ("D" > -3{POSTFIX})))',
1697
+
),
1698
+
# Not flattened if a dropped column is used in the select clause's dependent columns
1699
+
(
1700
+
lambdadf: df.filter(col("A") >=1)
1701
+
.select(col("A"), col("B").alias("D"))
1702
+
.filter((col("D") -1) >-4)
1703
+
.select((col("A") +1).alias("E")),
1704
+
'SELECT ("A" + 1{POSTFIX}) AS "E" FROM (SELECT "A", "B" AS "D" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) WHERE (("A" >= 1{POSTFIX}) AND (("D" - 1{POSTFIX}) > -4{POSTFIX})))',
1705
+
),
1706
+
# Not flattened if a dropped column that was changed expression is used in the select clause's dependent columns
'SELECT "A" FROM ( SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT) ) ORDER BY "B" ASC NULLS FIRST, "A" ASC NULLS FIRST',
1742
1781
True,
1743
1782
),
1783
+
# Flattened if the dropped columns are not used in filter
'SELECT "A" AS "C" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) ORDER BY ("C" + 1{POSTFIX}) ASC NULLS FIRST',
1797
+
True,
1798
+
),
1799
+
# Not flattened if a dropped new column is used in the order by clause
'SELECT "A" AS "E" FROM (SELECT "A", "B" AS "D" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) ORDER BY "D" ASC NULLS FIRST)',
1805
+
True,
1806
+
),
1807
+
# Not flattened if a dropped new column is used in the order by clause's dependent columns
'SELECT ("A" + 1{POSTFIX}) AS "E" FROM (SELECT "A", "B" AS "D" FROM (SELECT $1 AS "A", $2 AS "B" FROM VALUES (1 :: INT, -2 :: INT), (3 :: INT, -4 :: INT)) ORDER BY ("D" - 1{POSTFIX}) ASC NULLS FIRST)',
1813
+
True,
1814
+
),
1815
+
# Not flattened if a dropped column that was changed expression is used in the select clause's dependent columns
0 commit comments