code: def test_join_extension_array_column():
      storage = pa.array([1, 2, 3], type=pa.int64())
      ty = IntegerType()
      ext_array = pa.ExtensionArray.from_storage(ty, storage)
      dict_array = pa.DictionaryArray.from_arrays(
          pa.array([0, 2, 1]), pa.array(["a", "b", "c"])
      )
      t1 = pa.table(
          {
              "colA": [1, 2, 6],
              "colB": ext_array,
              "colVals": ext_array,
          }
      )
  
      t2 = pa.table(
          {
              "colA": [99, 2, 1],
              "colC": ext_array,
          }
      )
  
      t3 = pa.table(
          {
              "colA": [99, 2, 1],
              "colC": ext_array,
              "colD": dict_array,
          }
      )
  
      result = _perform_join("left outer", t1, ["colA"], t2, ["colA"])
      assert result["colVals"] == pa.chunked_array(ext_array)
  
      result = _perform_join("left outer", t1, ["colB"], t2, ["colC"])
      assert result["colB"] == pa.chunked_array(ext_array)
  
      result = _perform_join("left outer", t1, ["colA"], t3, ["colA"])
      assert result["colVals"] == pa.chunked_array(ext_array)
  
      result = _perform_join("left outer", t1, ["colB"], t3, ["colC"])
      assert result["colB"] == pa.chunked_array(ext_array)
  
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 9 for calling a global function with example usage: test_join_extension_array_column() without return types