)]}'
{
  "commit": "be0383a4fd87111a781175f2633c97c2fe9cca99",
  "tree": "2fd74b9b2b01a0162c1f7c1dee34bb9078726060",
  "parents": [
    "dddc3b51be9d027755d48e99f72b362e969ccecd"
  ],
  "author": {
    "name": "吴晟 Wu Sheng",
    "email": "wu.sheng@foxmail.com",
    "time": "Wed Jul 29 07:51:39 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 29 07:51:39 2026 +0800"
  },
  "message": "Always send an explicit LIMIT on BanyanDB queries (#13961)\n\nBanyanDB applies its own default limit to any query that carries none --\n100 rows for measures, 20 for streams/traces -- and applies it after\nGROUP BY, so an over-long result set is silently truncated rather than\nrejected.\n\nOAP never sent a limit on several read paths, so an entity-scoped metrics\nquery returned at most 100 data points regardless of the requested range:\na 4-hour minute-step read rendered only its first 100 minutes and the rest\nshowed as empty, even though DurationUtils.MAX_TIME_RANGE allows up to 500\nsteps. The same cap silently shortened topology relation maps, instance\nand process metadata lists, profiling thread snapshots and eBPF task lists.\n\nEvery BydbQL query now leaves OAP with an explicit LIMIT:\n\n- the entity-scoped metrics read sends the exact number of assembled\n  duration points, the same row set the ES/JDBC DAOs fetch by explicit id;\n- ad-hoc SELECT TOP sends its own N;\n- anything that does not paginate itself falls back to the configured\n  resultWindowMaxSize (default 10000) via Conditions#limitIfAbsent, applied\n  in the stream/measure/trace query helpers that every DAO funnels through.\n\nThe fallback is spliced in at the start of the pagination tail rather than\nappended, so it lands ahead of an OFFSET that was set first and keeps\nWITH QUERY_TRACE positioned as the grammar requires.\n\nES and JDBC storage were never affected -- both fetch metrics rows by\nexplicit document id.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e90572a99559d8114e6740a5395c16e023a0075e",
      "old_mode": 33188,
      "old_path": "docs/en/changes/changes.md",
      "new_id": "a3e4023517f5d97bd466afafe91412ab1b18e426",
      "new_mode": 33188,
      "new_path": "docs/en/changes/changes.md"
    },
    {
      "type": "modify",
      "old_id": "bd9ecdc2dcdccef29b7cc26802fcc8d9e806ad34",
      "old_mode": 33188,
      "old_path": "docs/en/setup/backend/storages/banyandb.md",
      "new_id": "de9b0045afe438b0defe9443e5f9898922002385",
      "new_mode": 33188,
      "new_path": "docs/en/setup/backend/storages/banyandb.md"
    },
    {
      "type": "modify",
      "old_id": "73f6479c665c03f5a1a34e9faf2c4ff92783dc4b",
      "old_mode": 33188,
      "old_path": "oap-server/server-starter/src/main/resources/bydb.yml",
      "new_id": "7ec4764c234fcdb119faf7c2958a5babf379c6df",
      "new_mode": 33188,
      "new_path": "oap-server/server-starter/src/main/resources/bydb.yml"
    },
    {
      "type": "modify",
      "old_id": "e0917ddb4c1afbaaf92968fad794a22cfec657b4",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java",
      "new_id": "8add7afd67af95544b3464c2337c1c344a5773ac",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java"
    },
    {
      "type": "modify",
      "old_id": "1475fb8c191485efcb2ef439b499df42d532fe3c",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java",
      "new_id": "b29a1235215f700dc767c38ca2df2138d163bbfb",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java"
    },
    {
      "type": "modify",
      "old_id": "bf018666990a375b5f29606dc4c435cd8afc23cc",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java",
      "new_id": "1181a3243dd15bcd56daef5a854c3d5aa096c203",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetricsQueryDAO.java"
    },
    {
      "type": "modify",
      "old_id": "cffa0eb5ab2c452a557f19779e7985c3931006f9",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java",
      "new_id": "1a761a78f61ae40a16c906cca224190f466d7c15",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java"
    },
    {
      "type": "modify",
      "old_id": "fe7a8beaa186631802cee3b62febe9903213d539",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/Conditions.java",
      "new_id": "14fe7fc8e32603c96b452540b64f8e3062cdb1f3",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/Conditions.java"
    },
    {
      "type": "modify",
      "old_id": "f8ec24a82c5e3ee89569f1d13326f7df595704d5",
      "old_mode": 33188,
      "old_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/ConditionsTest.java",
      "new_id": "65a7033a217a1c345703499acb255eda82cf79cc",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/ConditionsTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "55d859dd998bce75e94b22ccd4745480020024cc",
      "new_mode": 33188,
      "new_path": "oap-server/server-storage-plugin/storage-banyandb-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/QueryLimitTest.java"
    }
  ]
}
