diff --git a/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/out.sql b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/inner/out.sql similarity index 100% rename from ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/out.sql rename to ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/inner/out.sql diff --git a/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/left/out.sql b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/left/out.sql new file mode 100644 index 000000000000..b5ea72b3cdc2 --- /dev/null +++ b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/left/out.sql @@ -0,0 +1,22 @@ +WITH t0 AS ( + SELECT t3.* + FROM awards_players t3 + WHERE t3.`lgID` = 'NL' +), +t1 AS ( + SELECT t0.`playerID`, t0.`awardID`, t0.`tie`, t0.`notes` + FROM t0 +), +t2 AS ( + SELECT t3.* + FROM batting t3 + WHERE t3.`yearID` = 2015 +) +SELECT t2.`playerID`, t2.`yearID`, t2.`stint`, t2.`teamID`, t2.`lgID`, t2.`G`, + t2.`AB`, t2.`R`, t2.`H`, t2.`X2B`, t2.`X3B`, t2.`HR`, t2.`RBI`, + t2.`SB`, t2.`CS`, t2.`BB`, t2.`SO`, t2.`IBB`, t2.`HBP`, t2.`SH`, + t2.`SF`, t2.`GIDP`, t1.`playerID` AS `playerID_right`, + t1.`awardID`, t1.`tie`, t1.`notes` +FROM t2 + LEFT OUTER JOIN t1 + ON t2.`playerID` = t1.`playerID` \ No newline at end of file diff --git a/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/outer/out.sql b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/outer/out.sql new file mode 100644 index 000000000000..ee8171d5505a --- /dev/null +++ b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/outer/out.sql @@ -0,0 +1,22 @@ +WITH t0 AS ( + SELECT t3.* + FROM awards_players t3 + WHERE t3.`lgID` = 'NL' +), +t1 AS ( + SELECT t0.`playerID`, t0.`awardID`, t0.`tie`, t0.`notes` + FROM t0 +), +t2 AS ( + SELECT t3.* + FROM batting t3 + WHERE t3.`yearID` = 2015 +) +SELECT t2.`playerID`, t2.`yearID`, t2.`stint`, t2.`teamID`, t2.`lgID`, t2.`G`, + t2.`AB`, t2.`R`, t2.`H`, t2.`X2B`, t2.`X3B`, t2.`HR`, t2.`RBI`, + t2.`SB`, t2.`CS`, t2.`BB`, t2.`SO`, t2.`IBB`, t2.`HBP`, t2.`SH`, + t2.`SF`, t2.`GIDP`, t1.`playerID` AS `playerID_right`, + t1.`awardID`, t1.`tie`, t1.`notes` +FROM t2 + FULL OUTER JOIN t1 + ON t2.`playerID` = t1.`playerID` \ No newline at end of file diff --git a/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/right/out.sql b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/right/out.sql new file mode 100644 index 000000000000..ba207f7a15a0 --- /dev/null +++ b/ibis/backends/flink/tests/snapshots/test_join/test_mutating_join/right/out.sql @@ -0,0 +1,22 @@ +WITH t0 AS ( + SELECT t3.* + FROM awards_players t3 + WHERE t3.`lgID` = 'NL' +), +t1 AS ( + SELECT t0.`playerID`, t0.`awardID`, t0.`tie`, t0.`notes` + FROM t0 +), +t2 AS ( + SELECT t3.* + FROM batting t3 + WHERE t3.`yearID` = 2015 +) +SELECT t2.`playerID`, t2.`yearID`, t2.`stint`, t2.`teamID`, t2.`lgID`, t2.`G`, + t2.`AB`, t2.`R`, t2.`H`, t2.`X2B`, t2.`X3B`, t2.`HR`, t2.`RBI`, + t2.`SB`, t2.`CS`, t2.`BB`, t2.`SO`, t2.`IBB`, t2.`HBP`, t2.`SH`, + t2.`SF`, t2.`GIDP`, t1.`playerID` AS `playerID_right`, + t1.`awardID`, t1.`tie`, t1.`notes` +FROM t2 + RIGHT OUTER JOIN t1 + ON t2.`playerID` = t1.`playerID` \ No newline at end of file diff --git a/ibis/backends/flink/tests/test_join.py b/ibis/backends/flink/tests/test_join.py index 869db7f8ad6f..f1a3b2090bdc 100644 --- a/ibis/backends/flink/tests/test_join.py +++ b/ibis/backends/flink/tests/test_join.py @@ -1,12 +1,15 @@ +import pytest + from ibis.backends.flink.compiler.core import translate -def test_mutating_join(batting, awards_players, snapshot): +@pytest.mark.parametrize("how", ["inner", "left", "right", "outer"]) +def test_mutating_join(batting, awards_players, how, snapshot): left = batting[batting.yearID == 2015] right = awards_players[awards_players.lgID == 'NL'].drop('yearID', 'lgID') predicate = ['playerID'] - expr = left.join(right, predicate) + expr = left.join(right, predicate, how=how) result = translate(expr.as_table().op()) snapshot.assert_match(str(result), "out.sql")