)]}'
{
  "commit": "485f0aa75f8b4a810e271b709e427d7b59281d28",
  "tree": "fc00626afb2e9498d29641745e2e9bddaf23c464",
  "parents": [
    "e38a13bc82f6151fdc609a3ea95b9c94f789deca"
  ],
  "author": {
    "name": "yangshijie",
    "email": "sjyang2022@zju.edu.cn",
    "time": "Sun Dec 07 14:31:00 2025 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Dec 07 14:31:00 2025 +0800"
  },
  "message": "[Feat](udtf) Support Python UDTF for Doris (#58348)\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a175dd37cb51c5ca9bedce4c068f147ce83e51e1",
      "old_mode": 33188,
      "old_path": "be/src/runtime/exec_env_init.cpp",
      "new_id": "1404677d70b940f3d6db843d16b8ac52e704ecde",
      "new_mode": 33188,
      "new_path": "be/src/runtime/exec_env_init.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cdf50df143c1ab6a8911efb648b7b49ca87dfadf",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_client.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d4193acff5f4fa670708130b98469b3a19b7444e",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_client.h"
    },
    {
      "type": "modify",
      "old_id": "0b29be8728cd794ff25d98172b39708a7bfa1642",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_env.cpp",
      "new_id": "72f2c5d9c98770c6e3cdf6e4718e48e0d8312bda",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_env.cpp"
    },
    {
      "type": "rename",
      "old_id": "542df1a3868d06e70d0a0ef331db4bd571abd3ec",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_server.cpp",
      "new_id": "4a560a4066fa3b988e1d6754718dfa8fdada31db",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_server.cpp",
      "score": 85
    },
    {
      "type": "rename",
      "old_id": "890379aef5c5a38f5813a13ad914a45a53ceb5ea",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_server.h",
      "new_id": "a78f570398d2bb7ef642845126937516bd34092e",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_server.h",
      "score": 83
    },
    {
      "type": "rename",
      "old_id": "417b0597762e747a8ba8380f06669114237d8a1c",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_server.py",
      "new_id": "d11ba2272596a2d5810d161d32448ee9b00e3b0e",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_server.py",
      "score": 89
    },
    {
      "type": "modify",
      "old_id": "40bd8e3ba4fb6d42312e7f2679b90092c77b52f1",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udaf_client.cpp",
      "new_id": "ab8a8c3e6af5842e112579fab3087dccf37c0b35",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udaf_client.cpp"
    },
    {
      "type": "modify",
      "old_id": "91c9d0a610b340eb0825a491a3e115d753cb22b8",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udaf_client.h",
      "new_id": "170463c1f23291a6e382d2896363208775f850f5",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udaf_client.h"
    },
    {
      "type": "modify",
      "old_id": "8164d9ff7e7a232a21d58ec0d0e4f84a943841c9",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_client.cpp",
      "new_id": "8e7aa38b33420edb092033df13f5584250fc2762",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udf_client.cpp"
    },
    {
      "type": "modify",
      "old_id": "9d88b79d31d9b0ca5aed3cff92fd136f14f36e21",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_client.h",
      "new_id": "969dd8d02d3cbda26de6f9fa8ee49db5746d1a76",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udf_client.h"
    },
    {
      "type": "modify",
      "old_id": "3683fc478f64f1d2bbf9056d705e28c462df7e52",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_runtime.cpp",
      "new_id": "49058e7cea676bb375b7b1f5b2ed85f6b5b66ccf",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udf_runtime.cpp"
    },
    {
      "type": "modify",
      "old_id": "b58ef66785e4ef484757bddc573887405eba16ed",
      "old_mode": 33188,
      "old_path": "be/src/udf/python/python_udf_runtime.h",
      "new_id": "3cbb7ab0734a439caf2e69793e7eab854915344c",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udf_runtime.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "15a13b6a279bed329e24fbd5d2c69b252043385b",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udtf_client.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "35ae29d1b7ae4d11836f711c6058319f7356c192",
      "new_mode": 33188,
      "new_path": "be/src/udf/python/python_udtf_client.h"
    },
    {
      "type": "modify",
      "old_id": "ede72e9763399025f7d73c7b8451f31b2792c63a",
      "old_mode": 33188,
      "old_path": "be/src/vec/aggregate_functions/aggregate_function_python_udaf.cpp",
      "new_id": "d70313b716646ea4e69ff79eb5fec58502eed384",
      "new_mode": 33188,
      "new_path": "be/src/vec/aggregate_functions/aggregate_function_python_udaf.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b1e598b127d86e8d819f165c65e1b4fd99b6dcd3",
      "new_mode": 33188,
      "new_path": "be/src/vec/exprs/table_function/python_udtf_function.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4a62aa98649480324fe2407154b2d609a05e5df",
      "new_mode": 33188,
      "new_path": "be/src/vec/exprs/table_function/python_udtf_function.h"
    },
    {
      "type": "modify",
      "old_id": "9b4aaa29ea763b861cb968b0a9599d98eb43692d",
      "old_mode": 33188,
      "old_path": "be/src/vec/exprs/table_function/table_function_factory.cpp",
      "new_id": "0990b7754ed38508524f7798697cc08f903bbeea",
      "new_mode": 33188,
      "new_path": "be/src/vec/exprs/table_function/table_function_factory.cpp"
    },
    {
      "type": "modify",
      "old_id": "553cb768ad20bef8eede90fccd4766de2200c302",
      "old_mode": 33188,
      "old_path": "be/src/vec/exprs/vectorized_fn_call.cpp",
      "new_id": "8dd4d69fd3d9d8932bb415f537ad040b0f795c0b",
      "new_mode": 33188,
      "new_path": "be/src/vec/exprs/vectorized_fn_call.cpp"
    },
    {
      "type": "modify",
      "old_id": "4bb6f259a9d3d9516750e958447c334b1ded97c7",
      "old_mode": 33188,
      "old_path": "be/src/vec/functions/function_python_udf.cpp",
      "new_id": "ca807d0f15df83b6de401e9332eebe9294d88359",
      "new_mode": 33188,
      "new_path": "be/src/vec/functions/function_python_udf.cpp"
    },
    {
      "type": "modify",
      "old_id": "516fc2a6614f101c3b94df4b0b4f449fe22d538e",
      "old_mode": 33261,
      "old_path": "build.sh",
      "new_id": "a7def39472023b13207ddd729a22eda6d7fd8224",
      "new_mode": 33261,
      "new_path": "build.sh"
    },
    {
      "type": "modify",
      "old_id": "71a0a1d72afa482ac2025d1ff857a2d1aad9251a",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java",
      "new_id": "3727577ac64a0d1690d9191ef9962b344f1b892d",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/catalog/Function.java"
    },
    {
      "type": "modify",
      "old_id": "320a06125a5211a7e375e2daff629818cb46cd6d",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionUtil.java",
      "new_id": "7ac982573649843d7c6bb30b0777f91f8fe040c6",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/catalog/FunctionUtil.java"
    },
    {
      "type": "modify",
      "old_id": "560891df9ea512e7967fb0a0f0d4d8ba4a425c53",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java",
      "new_id": "c559f688beb08d0fb4b219f16fd0c4c7b5f4236b",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/glue/translator/ExpressionTranslator.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e662e43212a20d55b05fc8849b5189ae561ea033",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/PythonUdtf.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c032ba18abe9dacd303aaa7696afd0e82f7dceb",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/functions/udf/PythonUdtfBuilder.java"
    },
    {
      "type": "modify",
      "old_id": "9fae7c397cada9c8500d05ccd0b49316593125f3",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/TableGeneratingFunctionVisitor.java",
      "new_id": "4192ca61465171f0a1c24c6a8ae81e2073d60152",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/expressions/visitor/TableGeneratingFunctionVisitor.java"
    },
    {
      "type": "modify",
      "old_id": "c9bd2666f3d7dedd3b20ce2b99f801a1a4c3f4c4",
      "old_mode": 33188,
      "old_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateFunctionCommand.java",
      "new_id": "45b043703b4ca5beb4c353fe537278d01947fdbc",
      "new_mode": 33188,
      "new_path": "fe/fe-core/src/main/java/org/apache/doris/nereids/trees/plans/commands/CreateFunctionCommand.java"
    },
    {
      "type": "modify",
      "old_id": "c45eadc04def2b4c2b1b6aabfa47c8067cc5e6db",
      "old_mode": 33188,
      "old_path": "regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.out",
      "new_id": "a54c688a128cf23d323be6e0000763bd9085f77b",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.out"
    },
    {
      "type": "modify",
      "old_id": "499552c87538149e645fa578a78b285f809fdfbe",
      "old_mode": 33188,
      "old_path": "regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.out",
      "new_id": "03796e9a118a6d0d69d69d4dc14a35002b7b092c",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8fff208efbbe198bc5af9a2713ab12ab02cb3c5a",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_basic_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "03c1fbd5947ff033b67082be74d66f048775290c",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_basic_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fc24ef99dea3fcf72d933a292c7c2acbda83776",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_data_types_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6fc24ef99dea3fcf72d933a292c7c2acbda83776",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_data_types_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0fd24efbe00d2e2dc88cc5f556421edfab3105c2",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_edge_cases_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e5238713750663016a035e571a03cfcd8d77b2da",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_edge_cases_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "afd3588411dfe50c1e24d4093253ba74b0599b8d",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_exceptions_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bf33b0a48658ab32e6da02d1a75faa92351dfcd5",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_exceptions_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b2e8d612694d32c0d87af924cc6f684afbae089",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_io_patterns_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5b2e8d612694d32c0d87af924cc6f684afbae089",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_io_patterns_module.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d452805258fee13d813abafd9b30f4d4172f0963",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_sql_integration_inline.out"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c1107085c7c45a5e13c49246616d12479e6a01d2",
      "new_mode": 33188,
      "new_path": "regression-test/data/pythonudtf_p0/test_pythonudtf_sql_integration_module.out"
    },
    {
      "type": "modify",
      "old_id": "b255fef92cf0f1ad6f602d7f307892d4ef8661b7",
      "old_mode": 33188,
      "old_path": "regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.groovy",
      "new_id": "88cbdd476e9265c1a1aedc93b1b3b343fc887eda",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_inline.groovy"
    },
    {
      "type": "modify",
      "old_id": "765f5633955195580b0a20a31eb1a3f74b6540a5",
      "old_mode": 33188,
      "old_path": "regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.groovy",
      "new_id": "d53c90c48d9f10f776ece8feccbe29b6237604a9",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudaf_p0/test_pythonudaf_complex_state_objects_module.groovy"
    },
    {
      "type": "modify",
      "old_id": "72a56bf05a56fc2aa3ce8ca572d5d02411822da2",
      "old_mode": 33188,
      "old_path": "regression-test/suites/pythonudaf_p0/udaf_scripts/complex_state_udaf.py",
      "new_id": "2d87b524fb59aa2a0bf4a01f72b74bac8eb0370d",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudaf_p0/udaf_scripts/complex_state_udaf.py"
    },
    {
      "type": "modify",
      "old_id": "4982af8b96df569cb7fef8f0cc1b82929e699ad7",
      "old_mode": 33188,
      "old_path": "regression-test/suites/pythonudaf_p0/udaf_scripts/pyudaf.zip",
      "new_id": "1dc76099d43326a3eb48e6b6e93b3eb0ae163100",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudaf_p0/udaf_scripts/pyudaf.zip"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0352de160860a879e11aff6c0ae9160562874cf5",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_basic_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5f586c8f71c22096e0723f109f35eee4df6e1141",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_basic_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4c05ecc841d444d0ce8831b6291e179f4416bdbb",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_data_types_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b987b11732c50cfd2b16713b910d4778479e2d1b",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_data_types_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f0cbacfb7859a2e7323724dc78ff430bc2165d85",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_edge_cases_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3bd4bf4a29ebbd79ea03b3a0fd07889cb3c4f2f5",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_edge_cases_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "832a7b1e6bf70bbb6c17b13f5698808c3fcb8bb3",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_exceptions_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f2b9f800ceba95df402820a235fc165fc7327c75",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_exceptions_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "24cb13f82ac90d895e6d5ab5d17cf7f10f06e054",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_io_patterns_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1289e48f68937c2aca9484003fb5783096375315",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_io_patterns_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "080b862825e409390c7362df41096b8c33c29844",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_sql_integration_inline.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3928c2560e2f0081c3136fdf2ffcdcf1754f3dca",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/test_pythonudtf_sql_integration_module.groovy"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f04942c97849c9c4dcc4d8e736bbe3e2b306a2c1",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf.zip"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c4ece6f1b71e389642786b8cd9e926ab4c30d67b",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/basic_udtf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8a32317c44bb7f94590cbd966308cec32b9bae8d",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/data_types_udtf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63515790f45c79dcfc53a1fcea3f5d3236583810",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/edge_cases_udtf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b663c7aa878dc7b2947d4fde52d90530a497195d",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/exceptions_udtf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b275bfd618dd317fb63a3feaea9372085077e12b",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/io_patterns_udtf.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "63027562918e64d91f495e325327390d26229612",
      "new_mode": 33188,
      "new_path": "regression-test/suites/pythonudtf_p0/udtf_scripts/pyudtf_module/sql_integration_udtf.py"
    }
  ]
}
