)]}'
{
  "commit": "57af1e63f5fd7f735f732a68b66673a4ab77a4c1",
  "tree": "5b070bca2b8be55a8a461efda72d7fa50e75e7b7",
  "parents": [
    "28387edfd91c0c0a3c0712ae4f0be3bea51418ff"
  ],
  "author": {
    "name": "Joe McDonnell",
    "email": "joemcdonnell@cloudera.com",
    "time": "Fri Jul 17 14:30:52 2026 -0700"
  },
  "committer": {
    "name": "Joe McDonnell",
    "email": "joemcdonnell@cloudera.com",
    "time": "Fri Aug 14 23:44:57 2026 +0000"
  },
  "message": "IMPALA-9153: Generate CUP parser Java source via CMake\n\nThis moves the code generation for the CUP parser from a\nMaven plugin to CMake. The Maven plugin is old and always\nregenerates the sources even if they haven\u0027t changed. This\nmeans that Maven rebuilds many source files on each run,\nslowing down the iteration cycle when running frontend\ntests.\n\nFixing the Maven CUP plugin is possible, but it involves\nmaintaining our own custom Maven plugin for our version\nof CUP. The CMake version is less code and almost as good.\nSince Maven doesn\u0027t generate the files, they never change\nand Maven won\u0027t rebuild source files on each run. However,\nit means that if a developer is actually changing sql-parser.cup,\nthen Maven won\u0027t notice itself. Instead, the developer\nneeds to run \"make java\" to regenerate the CUP sources and\nrebuild the Java code. This properly specifies the inputs /\noutputs, so it will only be regenerated if necessary.\n\nAs part of this, it moves the sql-parser.cup from fe/src/main/cup\nto common/cup. This is not strictly necessary, but it matches\nhow Thrift and other code generation is structured.\n\nTesting:\n - Ran local build / local tests\n - Compared generated source for both methods and only the\n   timestamps are different\n\nChange-Id: I180b191b72b54e3661726e1560be844341ed92e5\nReviewed-on: http://gerrit.cloudera.org:8080/24598\nReviewed-by: Michael Smith \u003cmichael.smith@cloudera.com\u003e\nTested-by: Impala Public Jenkins \u003cimpala-public-jenkins@cloudera.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "664407a36e8bf3095c36ddeb937682cb60ce397b",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "0a5ce2d97c826c94bb750fd2be7e54b39295edd4",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "966dde5a9220c1f6e8d61ff44a2b4841358edeb4",
      "new_mode": 33261,
      "new_path": "bin/cmake_aux/generate-cup-sources.sh"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61787ee03b6ace8b2f487e1a21f91e9a7d22750c",
      "new_mode": 33188,
      "new_path": "common/cup/CMakeLists.txt"
    },
    {
      "type": "rename",
      "old_id": "c78f3ff27d517fd5976f293a0a4ed1fc3990aa26",
      "old_mode": 33261,
      "old_path": "fe/src/main/cup/sql-parser.cup",
      "new_id": "c78f3ff27d517fd5976f293a0a4ed1fc3990aa26",
      "new_mode": 33261,
      "new_path": "common/cup/sql-parser.cup",
      "score": 100
    },
    {
      "type": "modify",
      "old_id": "975ad5d587f86b1754f1ab01f05504a46494e37c",
      "old_mode": 33188,
      "old_path": "fe/pom.xml",
      "new_id": "4f289d3b9f94140e3f07983de99e691b7718bcdf",
      "new_mode": 33188,
      "new_path": "fe/pom.xml"
    }
  ]
}
