)]}'
{
  "commit": "22ebcdabb2f24dbbd03b5d61972d65959589eb56",
  "tree": "9f58ebb5856ceee6bfbea3dc0645003fc7cd5347",
  "parents": [
    "e384a965d9508349b8b38fe41c145be99cdd0ba1"
  ],
  "author": {
    "name": "John Gemignani",
    "email": "jrgemignani@gmail.com",
    "time": "Mon Dec 22 19:34:07 2025 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Dec 22 19:34:07 2025 -0800"
  },
  "message": "Optimize join conditions to use direct column references (#2285)\n\nNOTE: This PR was created with AI tools and a human.\n\nWhen matching patterns like (u)-[e]-\u003e(v), join conditions previously\nrebuilt entire vertex/edge agtype values just to extract IDs:\n\nage_id(_agtype_build_vertex(r.id, ...))::graphid\n\nAdded optimize_qual_expr_mutator() to replace these patterns with\ndirect column access:\n\nage_id(_agtype_build_vertex(id, ...)) -\u003e graphid_to_agtype(id)\nage_start_id(_agtype_build_edge(...)) -\u003e graphid_to_agtype(start)\nage_end_id(_agtype_build_edge(...)) -\u003e graphid_to_agtype(end)\nage_properties(...) -\u003e direct properties column\n\nJoin conditions now use efficient comparisons like (e.start_id \u003d u.id)\nenabling PostgreSQL to leverage index scans on edge tables.\n\nAdded regression tests.\nAll regression tests passed.\n\nmodified:   regress/expected/unified_vertex_table.out\nmodified:   regress/sql/unified_vertex_table.sql\nmodified:   src/backend/parser/cypher_clause.c",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "118f4a83742d4bb836d52e61527d21a1d9f47960",
      "old_mode": 33188,
      "old_path": "regress/expected/unified_vertex_table.out",
      "new_id": "81655bcaa331129d6f977579999d99a515aac3f3",
      "new_mode": 33188,
      "new_path": "regress/expected/unified_vertex_table.out"
    },
    {
      "type": "modify",
      "old_id": "aebf6cd5aa9c882812fb38d9bee6055ae43837b1",
      "old_mode": 33188,
      "old_path": "regress/sql/unified_vertex_table.sql",
      "new_id": "605fd176da2c038a3528114d91967151abb7b064",
      "new_mode": 33188,
      "new_path": "regress/sql/unified_vertex_table.sql"
    },
    {
      "type": "modify",
      "old_id": "eb7dccf0111b72deef27cfa185a43f47732f45dd",
      "old_mode": 33188,
      "old_path": "src/backend/parser/cypher_clause.c",
      "new_id": "e56ac8acb2d33759835e6d9885214b08bd7a37f4",
      "new_mode": 33188,
      "new_path": "src/backend/parser/cypher_clause.c"
    }
  ]
}
