Github user ilooner commented on a diff in the pull request: https://github.com/apache/drill/pull/923#discussion_r138148176 --- Diff: exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoinAdvanced.java --- @@ -102,10 +103,11 @@ public void testFix2967() throws Exception { test("select * from dfs_test.`%s/join/j1` j1 left outer join dfs_test.`%s/join/j2` j2 on (j1.c_varchar = j2.c_varchar)", TEST_RES_PATH, TEST_RES_PATH); } finally { - setSessionOption(PlannerSettings.BROADCAST.getOptionName(), String.valueOf(PlannerSettings.BROADCAST.getDefault().bool_val)); - setSessionOption(PlannerSettings.HASHJOIN.getOptionName(), String.valueOf(PlannerSettings.HASHJOIN.getDefault().bool_val)); + final OperatorFixture.TestOptionSet testOptionSet = new OperatorFixture.TestOptionSet(); + setSessionOption(PlannerSettings.BROADCAST.getOptionName(), String.valueOf(testOptionSet.getDefault(PlannerSettings.BROADCAST.getOptionName()).bool_val)); --- End diff -- The test changed some of the options for the session. Since the same drillbit cluster is used for multiple tests, the changes need to be undone at the end of the test to avoid impacting other tests, which reuse the drill bit cluster. I basically kept things as they were before, but looking at it again I agree this is a pretty messy way of doing it. I think this could be cleaned up by doing: ``` ALTER SESSION RESET ALL; ``` To clear all the changes at the end of the test. Instead of passing an option value I'll also add methods for each type: ``` setSessionOption(final String option, final boolean value) setSessionOption(final String option, final long value) setSessionOption(final String option, final double value) setSessionOption(final String option, final String value) ```
---