code: def test_table_join_collisions():
      t1 = pa.table(
          {
              "colA": [1, 2, 6],
              "colB": [10, 20, 60],
              "colVals": ["a", "b", "f"],
          }
      )
  
      t2 = pa.table(
          {
              "colB": [99, 20, 10],
              "colVals": ["Z", "B", "A"],
              "colUniq": [100, 200, 300],
              "colA": [99, 2, 1],
          }
      )
  
      result = _perform_join(
          "full outer", t1, ["colA", "colB"], t2, ["colA", "colB"]
      )
      result = result.combine_chunks()
      result = result.sort_by("colUniq")
      assert result == pa.table(
          [
              [None, 2, 1, 6],
              [None, 20, 10, 60],
              [None, "b", "a", "f"],
              [99, 20, 10, None],
              ["Z", "B", "A", None],
              [100, 200, 300, None],
              [99, 2, 1, None],
          ],
          names=[
              "colA",
              "colB",
              "colVals",
              "colB",
              "colVals",
              "colUniq",
              "colA",
          ],
      )
  
      result = _perform_join(
          "full outer",
          t1,
          "colA",
          t2,
          "colA",
          right_suffix="_r",
          coalesce_keys=False,
      )
      result = result.combine_chunks()
      result = result.sort_by("colA")
      assert result == pa.table(
          {
              "colA": [1, 2, 6, None],
              "colB": [10, 20, 60, None],
              "colVals": ["a", "b", "f", None],
              "colB_r": [10, 20, None, 99],
              "colVals_r": ["A", "B", None, "Z"],
              "colUniq": [300, 200, None, 100],
              "colA_r": [1, 2, None, 99],
          }
      )
  
      result = _perform_join(
          "full outer",
          t1,
          "colA",
          t2,
          "colA",
          right_suffix="_r",
          coalesce_keys=True,
      )
      result = result.combine_chunks()
      result = result.sort_by("colA")
      assert result == pa.table(
          {
              "colA": [1, 2, 6, 99],
              "colB": [10, 20, 60, None],
              "colVals": ["a", "b", "f", None],
              "colB_r": [10, 20, None, 99],
              "colVals_r": ["A", "B", None, "Z"],
              "colUniq": [300, 200, None, 100],
          }
      )
  
file_path: arrow/python/pyarrow/tests/test_exec_plan.py
imports: import pytest
  import pyarrow
  import pyarrow.compute
  from .test_extension_type import IntegerType
label_desc: Use image node_id 3 for calling a global function with example usage: test_table_join_collisions() without return types