)]}'
{
  "log": [
    {
      "commit": "335f0b82a515b7e99bc03cb444b7179e667e6e0a",
      "tree": "a45ed116214aa5526e601a123211e51ce843814d",
      "parents": [
        "707e6d1da67c762f19f122aab128dd62247f3835"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Tue Aug 18 00:13:35 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Wed Aug 19 23:18:54 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][STO] Fix vector index build on a partition with no rows\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nCREATE INDEX ... TYPE VTREE fails when any storage partition receives no\nrows, and does not fail cleanly: it wedges the node. A collection with\nfewer rows than partitions, or any skewed hash distribution, is enough.\n\nTwo independent defects.\n\n1. VTreeBulkLoader.end() reserved the page block for the static-structure\ncopy with IPageManager.takeBlock(). Unlike takePage(), which binds the\nmetadata frame to the metadata page itself, takeBlock() reads\nmetaFrame.getMaxPage() straight away and requires the caller to have\nbound the frame. A partition that received no tuples never took a data\npage, so its frame was still unbound:\n\n  NullPointerException: Cannot invoke \"java.nio.ByteBuffer.getInt(int)\"\n    because \"this.buf\" is null\n    at LIFOMetaDataFrame.getMaxPage(LIFOMetaDataFrame.java:58)\n    at AppendOnlyLinkedMetadataPageManager.takeBlock(...:80)\n    at VTreeBulkLoader.end(VTreeBulkLoader.java:495)\n\nBind the frame first via getMaxPageId(), which does metaFrame.setPage()\nas a side effect, and keep takeBlock() so the block stays contiguous in\none call -- the (staticBasePageId + i) destination math depends on it.\nThis is sound because the loader\u0027s page manager is open for write, so\nits firstPage is set and getMaxPageId() leaves the frame bound to a page\nit did not unpin.\n\nVTreeFlushLoader.copyStaticStructure() gets the same treatment. It is\nnot known to be reachable with an unbound frame today -- LSMVTree.doFlush\ncopies the memory component\u0027s pages first, and copyPage() binds the\nframe -- but that is a caller-ordering invariant nothing enforces, and\nthe loop runs zero times if the component has no pages. This part is\nhardening, not a demonstrated fix.\n\n2. IndexBulkLoadOperatorNodePushable.closeBulkLoaders() caught only\nHyracksDataException. end()/abort() reach index-specific code that can\nthrow unchecked exceptions -- the NPE above, for instance -- and one\nescaping the loop skipped every remaining bulk loader. Each\ncreateBulkLoader() has declared an active I/O operation that only\nend()/abort() releases, so the skipped loaders leaked theirs, and the\nnext DatasetLifecycleManager.unregister() (here, the drop that rolls the\nfailed CREATE INDEX back) parked forever in DatasetInfo.waitForIO()\nholding the manager\u0027s monitor. That is what turned a failed build into a\nhung node: 2h19m with no progress, and every other index operation on\nthe node queued behind the monitor.\n\nCatch Throwable per loader, aggregate with addSuppressed, and wrap once.\nThis is shared code, so it covers every index type, not just VTree.\nASTERIXDB-3760 previously fixed the same class of leak in\nVTreeStaticStructureCreatorOperatorDescriptor; this is the second site.\n\nLSMVTreeEmptyPartitionBulkLoadTest covers (1): build the static\nstructure, create a data bulk loader, add nothing, end(), then\ndeactivate/reactivate to prove the component is loadable. Removing the\ngetMaxPageId() call reproduces the NPE above, so the test drives the fix\nrather than merely passing alongside it. Every other fixture in that\nsuite populates all of its clusters, which is why this went unnoticed.\n\nVerified: 31/31 in hyracks-storage-am-lsm-vtree-test, and the CBAS\ncolumnar vector suite (5 cases, including ingestion into an indexed\ncollection) passes end to end on a Docker-backed cluster.\n\nExt-ref: MB-73194, MB-72975\nChange-Id: I85aa44bd79b81d8ca70a381c57f8959f21456a4b\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21572\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "707e6d1da67c762f19f122aab128dd62247f3835",
      "tree": "b5457904b3c263a322b0b91955de36cf81a14a80",
      "parents": [
        "f3ea766a3e164d9139d6e84ac1e1bb8e3fd32231",
        "c6f40bd4e1767fcc998eda5def629c814170e97c"
      ],
      "author": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Wed Aug 19 17:56:28 2026 +0000"
      },
      "committer": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Wed Aug 19 17:56:28 2026 +0000"
      },
      "message": "Merge \"Merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\""
    },
    {
      "commit": "f3ea766a3e164d9139d6e84ac1e1bb8e3fd32231",
      "tree": "5e6eab0fd78e356af10f348ea4c77d4295e5506c",
      "parents": [
        "28e3dcf45478228ea7693510f95ca2b3eba483e2"
      ],
      "author": {
        "name": "Le0shy",
        "email": "leoshy1005@gmail.com",
        "time": "Tue Aug 11 01:14:20 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 19 00:35:11 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][RT][STO] Handlers of vtree build on dimension mismatch\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDetails:\nBy design, a vector index builds only over the embeddings whose\ndimension matches the DDL and skips the rest, so a build is implicitly\npartial. Each stage applied that rule on its own, which left the runtime\nexception handling tangled: before this change, when no vector matched,\nCREATE INDEX reported success while the bulk load dropped every record\nand ANN queries on the finished index returned no rows; when only some\nmatched, training ran on vectors the index would never hold, one could\nbecome a centroid, their components shaped the quantization constants,\nand a vector longer than the declared dimension threw\nArrayIndexOutOfBoundsException in the distance loop.\n\nFix: apply the rule at every stage that consumes a sampled vector, and\nreject a build that would leave a partition with nothing to index. The\nrejection is raised in the first job, before any training work, and\nnames both the declared and the observed dimension.\n\n- Training: test the dimension wherever a sampled vector is consumed,\n  and seed k-means from the first indexable one.\n- Quantization: skip non-indexable vectors so the constants describe the\n  vectors the index will actually hold, and reject a partition whose\n  whole sample is non-indexable.\n- Reporting: the static-structure creator no longer builds after an\n  upstream failure, which replaced the real error with \"no training\n  vectors were found\"; the empty quantization payload now names its\n  likely causes instead of a byte count.\n- Metadata: drop the 384 fallback for a missing `dimension`.\n- Storage: bind metaFrame in end(), where takeBlock needs it, so an\n  empty load works. takeBlock reads getMaxPage() without binding the\n  frame, unlike takePage.\n\nTests: operator coverage that off-dimension vectors do not shape the\ncentroids or the constants, for the partial and empty cases, and a\nruntimets golden for the DDL error.\n\nExt-ref: MB-73219\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I44e13a38e10e09d0c439063582b2747942476f26\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21535\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "28e3dcf45478228ea7693510f95ca2b3eba483e2",
      "tree": "e39d3ef0daadc1eb12b6ecc9b34bac1de37fb18b",
      "parents": [
        "0ac4410445e9ed6895603dc1b5a783c2dc18c6e9"
      ],
      "author": {
        "name": "Janhavi Tripurwar",
        "email": "janhavi.tripurwar@couchbase.com",
        "time": "Mon Aug 17 16:11:13 2026 +0530"
      },
      "committer": {
        "name": "Janhavi Tripurwar",
        "email": "janhavi.tripurwar@couchbase.com",
        "time": "Tue Aug 18 05:55:03 2026 +0000"
      },
      "message": "[ASTERIXDB-3593]: Keep the text of each statement\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\n- The text a statement was parsed from was not available to what\n  reports the statements of a request.\n- The SQL++ parser now records where each statement began and ended\n  and builds its text on demand, through the new\n  IParser.getStatementTexts(); StatementInfo carries it.\n\nExt-ref: MB-62708\n\nChange-Id: I2a866a51f80747e545ba4d03e237359f8e78a170\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21569\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Janhavi Tripurwar \u003cjanhavitripurwar@apache.org\u003e\n"
    },
    {
      "commit": "0ac4410445e9ed6895603dc1b5a783c2dc18c6e9",
      "tree": "338e05ad3400e47a5dcef17ba1ee3c4ea5f25234",
      "parents": [
        "db4f13132f1429a0be7959aea2872eac9293d06f"
      ],
      "author": {
        "name": "Janhavi Tripurwar",
        "email": "janhavi.tripurwar@couchbase.com",
        "time": "Fri Aug 14 00:58:57 2026 +0530"
      },
      "committer": {
        "name": "Janhavi Tripurwar",
        "email": "janhavitripurwar@apache.org",
        "time": "Mon Aug 17 03:40:00 2026 +0000"
      },
      "message": "[ASTERIXDB-3593]: Execute and report each statement of a request\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\n- The statements of a request were executed one after another into\n  one shared response: its results, status and metrics described all\n  of them together, the stats and the statement properties were\n  overwritten by each statement in turn, and a failure could not be\n  attributed to the statement that caused it.\n- The engine now records what each statement produced - its position,\n  kind, result set, plans, stats, warnings and error - as a\n  StatementInfo on the result metadata of the request, which the CC\n  already sends to the NC that serves the response.\n- What an endpoint does with those records is its own decision.\n  NCQueryServiceServlet.useMultiStatementResponse() answers false, so\n  every response of this service is unchanged for any number of\n  statements. An endpoint that overrides it is served a \"statements\"\n  array holding one object per statement, printed by\n  NcStatementsPrinter: the statement\u0027s position and kind, its results\n  or its handle, its plans, its status, its errors, its warnings, its\n  metrics and its profile.\n- Printing stays where it was. The CC does not print per statement,\n  and a request a CC received itself is untouched by the change.\n- A statement\u0027s figures are derived without disturbing the request\u0027s,\n  so that a response reporting the request as a whole is byte for\n  byte what it was: stats by difference (Stats.snapshot and since),\n  plans cleared for the statement and then put back\n  (ExecutionPlans.restoreMissingFrom), and warnings by the difference\n  the shared collector shows rather than by draining it.\n- max-warnings is a budget per statement where the statements are\n  reported one by one, and each statement counts every warning it\n  raised. A response that reports the request as a whole still lists\n  the first max-warnings warnings of the request.\n- The parser attributes a warning to the statement it was parsing\n  (IParser.getWarningsPerStatement) and reports the hints that no\n  clause claimed per statement instead of once for the request.\n- Async execution is rejected for a request carrying more than one\n  statement (ASX1259): it answers with a handle before a statement\n  has run, so the statements of a request cannot be sequenced.\n  Deferred delivery runs them in order and stays supported, handing\n  out a handle per statement.\n- A statement that only affects the ones that follow it - USE, SET,\n  DECLARE FUNCTION - is reported with an entry of its own but is not\n  counted as one of the statements a request carries, by the same\n  predicate as the multi-statement \u003d false rejection.\n- Each statement reports its own metrics and the request reports the\n  totals. A statement reports what it produced: its compile and queue\n  wait time, its rows and their size, the objects it processed, and\n  the buffer cache and cloud counters of its job - and none of those\n  where it ran no job, rather than the previous statement\u0027s. Elapsed\n  and execution time are measured around the request, so a statement\n  does not report them at all.\n- The request then reports only what is its own: the time it took as a\n  whole, and whether a statement of it failed. It does not repeat the\n  figures of its statements, nor keep those of whichever ran last.\n  Whether a request failed is the request\u0027s to report - execution\n  stops at the first failure, so a statement says it failed with its\n  status and its errors rather than with a count of its own.\n- A request that reports its statements one by one succeeds as a\n  request while one of its statements failed, so its metrics count the\n  statements that failed: a response that reports errors always counts\n  them, whichever level they are reported at.\n- QueryTranslator.validateStatement is a new hook for validation that\n  belongs to one statement rather than to the request, so that a\n  deployment can authorize each statement as it is about to execute\n  and report a refusal against that statement.\n- A response whose body has begun cannot be given a different HTTP\n  status, so ChunkedResponse now keeps the status it has already\n  sent instead of failing the connection.\n- Tests: MultiStatementResponseTest pins the unchanged response for\n  several statements on both a CC and an NC, NcStatementsPrinterTest\n  pins what the array writes, api/multi-statement covers the two\n  rejections, and HttpServerTest covers the response above.\n\nExt-ref: MB-62708\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iecba6ed2a30f7a2e7d8ff21e995117ed505dfad5\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19687\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "db4f13132f1429a0be7959aea2872eac9293d06f",
      "tree": "e8894c7f6c0ced646e184fa3a03edd4fb524f306",
      "parents": [
        "0362b5f44c5ed83a7f9da461d919fdad15d4a5b7"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Fri Aug 14 09:35:53 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Mon Aug 17 01:28:49 2026 +0000"
      },
      "message": "[ASTERIXDB-3811][MTD] Fix Function entity serde\n\nDetails:\nIt would help if we actually called the method that\nserializes the batchiness of a function instead of\nskipping it entirely.\n\nChange-Id: Ia6e37080e581b92744ddd9090b291936d13315ab\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21552\nReviewed-by: Suryaa Charan Shivakumar \u003csshiv012@ucr.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "c6f40bd4e1767fcc998eda5def629c814170e97c",
      "tree": "af50a5c42a3e050141de3d26f0f2306338f86bfd",
      "parents": [
        "0362b5f44c5ed83a7f9da461d919fdad15d4a5b7",
        "7d2cdfbb01ce407d1b83b4b3302bda89fbf99f1a"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 20:14:58 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 20:34:06 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][MISC] Update test dependencies (MB-73268)\n * [NO ISSUE][HYR][NET] Use executor service for async handshakes\n   (MB-73310)\n * [NO ISSUE][HYR][NET] Bound the SSL handshake and stop it spinning\n   (MB-73310)\n * [NO ISSUE][HYR][NET] Bound the wait for an IPC handle to connect\n   (MB-73310)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][NET][BP] Only use client certificates if configured\n   (MB-73310)\n\nConflicts resolved in both poms and four other files. master is well\nahead of morpheus on most managed versions, so the general shape is to\nkeep this branch\u0027s own and take from morpheus only what is genuinely\nnewer.\n\nTaken from morpheus:\n\n - azurecore 1.58.1 -\u003e 1.59.0 and azurecorehttpnetty 1.16.5 -\u003e 1.16.6 in\n   asterixdb/pom.xml, keeping this branch\u0027s google-cloud-storage.version\n   property name (morpheus calls the same 2.71.0 gcsjavasdk.version, and\n   the reference site here is written against the former).\n - netty 4.1.136.Final -\u003e 4.1.137.Final in hyracks-fullstack/pom.xml.\n   That stays on the 4.1.x line this branch pins itself to, so the\n   constraint the comment records still holds.\n\nKept from master, where morpheus would have been a downgrade or a\nregression: hadoop 3.5.0 over 3.4.2, awssdk 2.50.3 over 2.29.52, log4j\n2.26.1 over 2.25.5, zookeeper 3.9.5 over 3.4.14, and the 0.3.10-SNAPSHOT\nhyracks/algebricks versions, which are this branch\u0027s own. The literal\ns3mock versions stay as they are here -- morpheus routes them through an\ns3mock.version property this branch does not define, and every reference\nto it sat on the morpheus side of a conflict, so dropping them together\nleaves nothing dangling. The asm-*, hadoop-client-runtime/api and\ntestcontainers:azure dependencyManagement entries and the testcontainers\nversion property are master-only and stay.\n\nesri-geometry-api is not carried over: this branch replaced it with\njts-core 1.20.0 and its pom no longer manages esri at all.\n\nFour files outside the poms:\n\n - ResultReader keeps getResultSetReader(), which exists only here.\n - HDFSUtils keeps only initializeHDFSScheduler; the indexing scheduler\n   was removed on this branch, and morpheus\u0027s change to that method (the\n   executor argument) applies above the conflict and is retained.\n - AsterixHyracksIntegrationUtil keeps toArray(new\n   NodeControllerService[0]).\n - geojson two-geometries result.16.adm stays deleted; it was removed\n   here by 0678c21f7a and morpheus only reflowed its contents.\n\nExt-ref: MB-68099,MB-73268\nChange-Id: I0953f496c55455d79e5fe64279ef98d47ba3dbf6\n"
    },
    {
      "commit": "7d2cdfbb01ce407d1b83b4b3302bda89fbf99f1a",
      "tree": "32942092cf3a57e6ad96fb6366f7375ba8eaf153",
      "parents": [
        "4d802cd33370fcb62b6a90b1846e5978d926d6d5",
        "b35aea33286489e5e80c1308b05280b5dad6b88b"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 13:22:43 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 13:22:43 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][MISC] Update test dependencies (MB-73268)\n * [NO ISSUE][HYR][NET] Use executor service for async handshakes\n   (MB-73310)\n * [NO ISSUE][HYR][NET] Bound the SSL handshake and stop it spinning\n   (MB-73310)\n * [NO ISSUE][HYR][NET] Bound the wait for an IPC handle to connect\n   (MB-73310)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n\nChange-Id: Ia2a1b1a60024c18eb939b3e5449898ce7202ecb1\nExt-ref: MB-68099,MB-73268\n"
    },
    {
      "commit": "4d802cd33370fcb62b6a90b1846e5978d926d6d5",
      "tree": "00fa112c1b47f69cc64bda97dc4dfb01928cd818",
      "parents": [
        "2b952825846992f9b4a3c2ecc84244fb465ee3ca"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "ian@maxons.email",
        "time": "Tue Feb 25 23:51:44 2025 -0800"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 17:21:44 2026 +0000"
      },
      "message": "[NO ISSUE][NET][BP] Only use client certificates if configured\n\nWithout this, newSSLEngine(true) resolves its context from the client\nkey store for every outgoing SSL connection, and the default\nNetworkSecurityConfig supplies neither a client key store nor a file for\none -- so createClientChannel fails with an NPE out of\nloadKeyStoreFromFile and no SSL connection can be established. This\nbranch has carried INetworkSecurityConfig.useMutualAuth since\n184a963c55 but never the commit that consults it.\n\nIt went unnoticed because the connect wait was unbounded: the handle sat\nin INITIAL and the caller blocked in waitTillConnected forever. Bounding\nthat wait (9eff88f) turns the hang into a reported failure, which is\nwhat surfaced this -- SslReplicationExecutionTest and\nSslSqlppExecutionTest now fail in 120s rather than hanging.\n\nExt-ref: MB-73310\n\nChange-Id: Id46266849ded6d0ea632293e829aed78396e1ea2\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/19471\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\n(cherry picked from commit aba667bc4fdf7760ecb8969d52b0a23b883cd4a0)\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21565\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\n"
    },
    {
      "commit": "b35aea33286489e5e80c1308b05280b5dad6b88b",
      "tree": "28db46a09ac958731d08ca423c06dfbaef9c6fa9",
      "parents": [
        "9eff88f167db3c4d920a223dbfe19b5f54078c66"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sat Aug 15 18:37:54 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 16 00:43:23 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.azure\n     - azurecore.version: 1.57.1 → 1.59.0\n     - azurecorehttpnetty.version: 1.16.5 → 1.16.6\n     - azureidentity.version: 1.17.0 → 1.18.4\n     - azureblobjavasdk.version: 12.31.3 → 12.35.0\n     - azurecommonjavasdk.version: 12.30.3 → 12.34.0\n     - azuredatalakejavasdk.version: 12.24.3 → 12.28.0\n - com.google.cloud (gcsjavasdk.version) 2.64.1 → 2.71.0\n\nThe public API these releases remove is all implementation detail:\nazure-json and azure-xml drop their vendored jackson and aalto classes,\nazure-core drops an implementation token cache, and gax drops six\nclasses from its tracing package.\n\nExt-ref: MB-73268\nChange-Id: Ia29ef4f5ab2694eaac37d656097050025d01da97\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21566\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "9eff88f167db3c4d920a223dbfe19b5f54078c66",
      "tree": "0599fec53860f3988a81a5613429548941cd14dd",
      "parents": [
        "b322b1e80396a5d41c73e4cc263061d7be0618d2"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 13:02:29 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 14 20:15:06 2026 +0000"
      },
      "message": "[NO ISSUE][HYR][NET] Bound the wait for an IPC handle to connect\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\n- IPCHandle.waitTillConnected() waited on the monitor with no deadline,\n  as its own TODO noted. A handle which never reached CONNECTED or\n  CLOSED therefore parked its caller forever, and the maxRetries loop in\n  IPCConnectionManager.getIPCHandle() - which exists precisely to\n  recover from a failed connect - was unreachable\n- take a timeout, and on expiry mark the handle CLOSED and return false,\n  which is what getIPCHandle() already interprets as a failed connection\n- default 120s, overridable with hyracks.ipc.connect.timeout.sec. It\n  must stay above the SSL handshake deadline (60s by default) so that a\n  handshake still legitimately in progress is not abandoned here\n- a connect that completes after the waiter has given up must not\n  resurrect the CLOSED handle into a live connection nobody references:\n  connectionEstablished() now transitions the handle only if it is not\n  already closed, and otherwise discards the late connection and closes\n  its channel\n- this is a backstop. With the SSL handshake now bounded, a stalled\n  handshake fails and closes its channel on its own; this covers the\n  non-SSL stalls and anything else that leaves a handle untransitioned\n\nExt-ref: MB-73310\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I1199e4e8b08eb6abf1649142c8efa7dd00600e27\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21547\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "b322b1e80396a5d41c73e4cc263061d7be0618d2",
      "tree": "ec9cb1d879aa51a7a0b96d4ffcfbe9eeaae88a19",
      "parents": [
        "7e665ff1c9ffe4f4a16d8d3f965670ca13d7a0a4"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 13:00:54 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 14 20:14:52 2026 +0000"
      },
      "message": "[NO ISSUE][HYR][NET] Bound the SSL handshake and stop it spinning\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\n- IPCConnectionManager.register() puts the channel in non-blocking mode,\n  but SslHandshake.unwrap() was written as though it were blocking: a\n  read() returning 0 - the ordinary \"peer has not sent anything yet\"\n  case - fell through to engine.unwrap() on an empty buffer, yielded\n  BUFFER_UNDERFLOW, left the status at NEED_UNWRAP, and the loop in\n  handshake() retried immediately. A handshake waiting on its peer\n  therefore burned 100% of a core for as long as it waited; a thread\n  dump of a hung CI run showed 6383s of CPU over 6395s elapsed. The\n  write loop in wrap() had the same defect: write() returning 0 - the\n  peer not draining, or a full send buffer - was retried immediately\n- wait for channel readiness on a private selector instead, at the\n  points where no progress is possible: a read with nothing buffered and\n  nothing arrived, a partial record left by BUFFER_UNDERFLOW, and a\n  write that the channel accepted no bytes of. Note the read buffer may\n  still hold a complete record after a zero-length read, so waiting\n  unconditionally on read() \u003d\u003d 0 would stall a handshake whose bytes had\n  already arrived\n- bound the whole handshake by a deadline\n  (hyracks.ssl.handshake.timeout.sec, default 60). On expiry handshake()\n  returns false, which the connection manager already treats as a failed\n  handshake: it closes the handle, waitTillConnected() observes CLOSED,\n  and getIPCHandle() retries. Before this an unresponsive peer hung the\n  caller forever\n- run the SSLEngine delegated tasks inline rather than on a\n  single-thread executor created per handshake and never shut down; the\n  handshake already runs on an executor thread of its own\n\nExt-ref: MB-73310\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nCo-Authored-By: Claude Fable 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I50ffed3f912903663c4b67e713454b79e9d80503\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21546\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "7e665ff1c9ffe4f4a16d8d3f965670ca13d7a0a4",
      "tree": "3d80c99b30fb474a6c74285273f8c79a30cdc33c",
      "parents": [
        "4191607a64445c2b682887fd291de98839ba3313"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Feb 18 22:31:52 2024 -0500"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 14 20:14:38 2026 +0000"
      },
      "message": "[NO ISSUE][HYR][NET] Use executor service for async handshakes\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\n- asynchronous socket handshakes were submitted to the\n  ForkJoinPool.commonPool() default executor of\n  CompletableFuture.supplyAsync(). Handshakes block, so on a\n  cores-1-wide common pool they can starve, and compete with any other\n  common pool user in the JVM. Thread the owning service\u0027s executor\n  through to TCPEndpoint and IPCConnectionManager instead\n- interface changes: the constructors of MuxDemux, TCPEndpoint,\n  IPCSystem, ResultSet, ResultDirectory, ClientNetworkManager,\n  NetworkManager, ResultNetworkManager, HyracksConnection and the two\n  hdfs Schedulers now take the executor to use, as their last argument\n- HyracksConnection(ccHost, ccPort) has no executor to inherit, so it\n  creates one; it is daemon-threaded and shut down by close() so the\n  convenience constructor does not leak a pool per connection\n- backport of 18168, which landed on master only. master is downstream\n  of morpheus, so the fix never reached trinity/morpheus/totoro and the\n  starvation kept hanging asterix-gerrit-ssl-compression there\n- the sole conflict was in AsterixHyracksIntegrationUtil, where an\n  unrelated toArray cleanup on master met this change\u0027s added argument;\n  trinity\u0027s form of that sibling edit is kept\n\n(cherry picked from commit b487f67a7034feb4c0da7bb77ee6148281946ad7)\n\nExt-ref: MB-73310\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ibe2fdce979a49d962517494dc77a5616a19f6abf\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21545\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "0362b5f44c5ed83a7f9da461d919fdad15d4a5b7",
      "tree": "2ead1a12d453e85a2d1a016b48141bdae63a6d68",
      "parents": [
        "23374df1f4fe85bfd8da34a5983b95785f7e06ed"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Thu Aug 13 19:19:08 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Fri Aug 14 17:35:31 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][RT] Release LOAD I/O op when vector index build fails\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nA failed vector index build wedged the node instead of returning an\nerror. CREATE INDEX ... TYPE VTREE never came back, and every later\nindex operation on that node blocked behind it, with no timeout.\n\nVTreeStaticStructureCreator..Descriptor.buildStaticStructureOnPartition\ncalls ILSMIndex.createBulkLoader(), which declares an active LOAD I/O\noperation on the dataset (AbstractLSMIndex.createBulkLoader -\u003e\nioOpCallback.scheduled -\u003e DatasetInfo.declareActiveIOOperation). That\ndeclaration is released only by the loader\u0027s end() or abort(). The\nmethod called end() on the success path and had no abort() anywhere, so\nany failure between createBulkLoader() and end() leaked the declaration\npermanently, once per storage partition.\n\nA leaked declaration is not a slow leak. The next\nDatasetLifecycleManager.unregister() -- in practice the drop that rolls\nthe failed CREATE INDEX back -- blocks forever in\nDatasetInfo.waitForIO() waiting for numActiveIOOps to reach zero, and\nit does so while holding the DatasetLifecycleManager monitor, so the\nremaining partitions on that node pile up behind the monitor.\n\nWrap the load in the end()/abort() pattern that\nIndexBulkLoadOperatorNodePushable.closeBulkLoaders() already uses.\nNote that endInvoked is set BEFORE end() rather than after: end()\nreleases the declaration in its own finally even when it throws, so\naborting a failed end() would release it twice and drive numActiveIOOps\nnegative, which waitForIO() reports as an IllegalStateException. The\nabort itself is best effort and never masks the failure that triggered\nit.\n\nReproducer (8 storage partitions, six rows, so one partition receives\nno rows and its k-means yields no centroids):\n\n  CREATE COLLECTION s.movies PRIMARY KEY (id: int);\n  INSERT INTO s.movies ([ ...six rows... ]);\n  ANALYZE COLLECTION s.movies WITH {\"sample-seed\": \"1000\"};\n  CREATE INDEX i ON s.movies(embedding VECTOR) TYPE VTREE\n  WITH { \"dimension\": 3, \"similarity\": \"euclidean\", \"num_clusters\": 2,\n           \"train_list_fraction\": 1.0 } EXCLUDE UNKNOWN KEY;\n\nBefore: the statement never returns (killed after 21 minutes); a thread\ndump shows two partitions parked in DatasetInfo.waitForIO() holding\ntheir DatasetLifecycleManager monitor and the rest blocked on it.\nAfter: the statement fails in 2.5s with \"Cannot build vector index: no\ntraining vectors were found\".\n\nWhether an empty partition should fail the build at all is a separate\nquestion and is deliberately left as-is here.\n\nExt-ref: MB-72975\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I176d8077e4555069b5c183143eaab2bf03e019bd\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21550\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "4191607a64445c2b682887fd291de98839ba3313",
      "tree": "5424e3f3bb01add147a5dcd4e58b31642395df64",
      "parents": [
        "b40939daabc0cf770615ac6150fd0b04c4bcdccf"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 16:02:15 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 14 16:41:04 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update test dependencies\n\n - org.mockito:mockito-core: 3.10.0 → 3.12.4\n - org.postgresql:postgresql: 42.2.29 → 42.7.13\n - org.testcontainers\n     - postgresql: 1.16.3 → 1.21.4\n     - testcontainers: 1.17.6 → 1.21.4\n\nAll four are test scope and none of them ship.\n\ntestcontainers keeps its own docker-java (3.4.2 in this release), which\nnothing here overrides, so the client it drives is the one it was built\nagainst.\n\nVerified by test-compiling every module that uses them: asterix-podman,\nasterix-app and the hyracks modules with mockito. asterix-app is worth a\nnote, as SqlppArrayIndexRQGTest reaches into\norg.testcontainers.shaded.com.fasterxml.jackson rather than declaring\njackson itself; 1.21.4 still relocates those classes, so it compiles,\nbut that import will break on whichever release stops shading them.\n\nThe suites themselves run in their own jobs rather than here: the podman\ntests need podman, and the RQG tests need the postgres container.\n\nExt-ref: MB-73268\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I4065ff327610d67ea7ce815db8e0d2ed22159a59\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21549\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "b40939daabc0cf770615ac6150fd0b04c4bcdccf",
      "tree": "cc45f6a09234f25982fa66783ef2cdd57172c90e",
      "parents": [
        "80e93c68c59d4e9a975f4cf2f2d49499c95c5882"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 14:50:20 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 14 16:40:56 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.esri.geometry:esri-geometry-api: 2.0.0 → 2.2.4\n - com.fasterxml.woodstox:woodstox-core: 7.1.1 → 7.2.2\n - com.nimbusds:nimbus-jose-jwt: 10.0.2 → 10.9.1\n - com.rometools\n     - rome: 1.7.4 → 1.19.0\n     - rome-fetcher: 1.7.4 → 1.19.0\n - net.minidev:json-smart: 2.4.11 → 2.6.0\n - org.apache.commons:commons-collections4: 4.5.0 → 4.6.0\n - org.apache.wicket:wicket-util: 8.2.0 → 8.18.0  (test only)\n - org.codehaus.plexus:plexus-utils: 3.1.1 → 3.6.1\n - org.reflections:reflections: 0.9.12 → 0.10.2  (test only)\n\nFour version sites also gain lock annotations. Each is one a sweep would\notherwise take, and each is known to break:\n\n - formatter-maven-plugin and impsort-maven-plugin in both parent poms.\n   Newer versions rewrap javadoc and reorder imports, reformatting the\n   whole tree. The cbas poms already carried the marker and these did\n   not, so a run would have reformatted this tree and left cbas alone.\n - apache-rat-plugin in hyracks-fullstack\u0027s build/plugins section. The\n   pluginManagement entry was annotated already; this second declaration\n   was not, and 0.15+ drops the license implementation classes that both\n   of them configure.\n - doxia-maven-plugin, where 1.2 drops the plexus ValueSource class the\n   render-books goal loads.\n\nesri-geometry-api is the only one here with removed public API: the\nDirtyFlags and MgrsConversionMode classes are gone. Neither is\nreferenced by anything on the back-compat classpaths, checked against\nevery jar in both bundles.\n\nIt also changes what st_union returns, so geojson/two-geometries gets a\nnew expected result. This is upstream issue #177, \"OGCGeometry#union of\ngeometries of different dimensions is incorrect\", fixed in 2.2.0: union\nof a point with a linestring used to drop the point. The third row of\nthat result shows it plainly, LINESTRING(1 1,...,6 6) with POINT(0 0),\nwhere the point is nowhere on the line and the old answer returned the\nline alone. It is now a GeometryCollection of both, which is what the\nupstream issue gives as the expected result.\n\nThe second row is the same fix seen from a different angle. There the\npoint does lie on the line, so the union covers the same points as\nbefore, but it is now computed rather than short-circuited and comes\nback noded at the self-intersection: the line crosses itself at (1 2),\nwhich the segment from (-1 -1) to (2 3.5) passes through, so the result\nis four paths instead of one. Both versions agree the result equals the\ninput line.\n\nThat row also loses its crs, which is not a regression from this bump:\nesri emits no crs for multi-geometries, in 2.0.0 as well, so the field\nwent away with the change of type rather than with the version.\n\nExt-ref: MB-73268\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I056ed83cdfd6960f64cf4654448fe28c211b66a1\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21548\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "23374df1f4fe85bfd8da34a5983b95785f7e06ed",
      "tree": "1510f9f35fae6a4e54774bd89d5cc14fbf7176e7",
      "parents": [
        "2f4fbacad6fe82e921fdf3fdf7ef71fd8de4a161"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "ian@maxons.email",
        "time": "Mon Sep 30 23:04:13 2024 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Fri Aug 14 02:38:17 2026 +0000"
      },
      "message": "[NO ISSUE][EXT] Remove PID checking for domain sock UDFs\n\nThis assumes the process we are talking with is in\nthe same kernel. It\u0027s also of dubious value, because\nif the process crashed it would close the socket.\n\nChange-Id: Ia6e37080e581b92744ddd9090b291936513c15ac\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18924\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "2b952825846992f9b4a3c2ecc84244fb465ee3ca",
      "tree": "693e03f4d559f2a035a29f97cc2c64c35d86e3a4",
      "parents": [
        "e7ae62cba67621a03ea9ced8e9575d4576b6c7e6",
        "80e93c68c59d4e9a975f4cf2f2d49499c95c5882"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 12 22:28:37 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 12 22:28:37 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73268)\n\nConflict resolved in the javaparser-core version pinned for the\nmaven-plugin-plugin in both asterixdb/pom.xml and\nhyracks-fullstack/pom.xml. Trinity moves it from 3.25.5 to 3.25.10; this\nbranch is already on 3.26.3, so the newer version here stands.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nExt-ref: MB-73268\nChange-Id: Iedaa8f08a6a970e9d979a4001bc00e52c6efbd64\n"
    },
    {
      "commit": "80e93c68c59d4e9a975f4cf2f2d49499c95c5882",
      "tree": "7dd63a91493ea79d6943cd40a313490c1566959e",
      "parents": [
        "1ae76395c85d272e6d2bafe7513267af5d7c7a7c"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 11 21:32:02 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 01:57:03 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.google.protobuf (via grpc-bom) 3.25.8 → 3.25.9\n - io.grpc (grpc-bom, grpc-netty) 1.80.0 → 1.83.1\n - org.msgpack:msgpack-core: 0.9.11 → 0.9.12\n - software.amazon.awssdk (awsjavasdk.version) 2.29.27 → 2.29.52\n\nThese were held out of the previous batch because each ships jars the\nback-compat bundles also carry, and taking them meant extending the\ncompat exclude lists. The companion change does that; this one is just\nthe version moves.\n\nPublic API removed between the old and new versions was checked against\nevery bundle jar that could reference it. All of it is internal or\nprotected implementation detail — awssdk drops two internal classes and\nan internal constructor, hadoop drops abfs/s3a internals, grpc drops\neight members under io.grpc.internal and io.grpc.xds.internal — and\nnothing in either bundle references any of it. protobuf-java and\nmsgpack-core remove nothing.\n\nhadoop is deliberately left at 3.4.2. 3.4.3 targets awssdk 2.35.4, and\nits S3A ChecksumSupport reads ChecksumAlgorithm.CRC64_NVME, added in\nawssdk 2.30 -- initialising that class against 2.29.x throws\nNoSuchFieldError on the thread compiling the query, which hyracks treats\nas fatal, halting the JVM with EC_HALT_UNHANDLED_EXCEPTION.\nAwsS3ExternalDatasetTest fails as a vanished fork rather than an\nassertion, which is what makes it worth a note here.\n\nRaising awssdk to match is not an option yet: at 2.35.4 the same test\nfails 50 of 71 cases with EOFException reading back what it wrote, as\nio.findify S3Mock mishandles the newer SDK\u0027s default upload checksums.\nhadoop.version therefore carries \u0027@pinned-with: ${awsjavasdk.version}\u0027,\nso a future run that moves awssdk reports hadoop for review instead of\npairing them silently.\n\nExt-ref: MB-73268\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I5fd91dea980b02fc478787a6175a63d09534ac90\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21540\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "1ae76395c85d272e6d2bafe7513267af5d7c7a7c",
      "tree": "4f38832549dcd6a585833cef491e81dd7699e770",
      "parents": [
        "a495dddadc17f9cd7ecce687fda0a10a20ac13cf"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 11 20:48:56 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 13 01:56:53 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.e-movimento.tinytools\n     - privilegedaccessor: 1.3 → 1.3.1  (test only)\n - com.github.eirslett:frontend-maven-plugin: 1.11.0 → 1.11.3\n - com.github.javaparser:javaparser-core: 3.25.5 → 3.25.10\n - com.typesafe.akka\n     - akka-http-core_2.12: 10.1.0 → 10.1.15  (test only)\n - io.findify:s3mock_2.12: 0.2.5 → 0.2.6  (test only)\n - io.netty (netty.version) 4.1.136.Final → 4.1.137.Final\n - org.apache.zookeeper:zookeeper: 3.4.13 → 3.4.14\n - org.codehaus.jettison:jettison: 1.5.5 → 1.5.7\n - org.codehaus.mojo.appassembler:appassembler-booter: 2.0.0 → 2.1.0\n - org.codehaus.plexus:plexus-utils: 3.1.0 → 3.1.1\n - org.postgresql:postgresql: 42.2.24 → 42.2.29  (test only)\n - org.testcontainers\n     - postgresql: 1.16.2 → 1.16.3  (test only)\n     - testcontainers: 1.17.1 → 1.17.6  (test only)\n - pl.project13.maven:git-commit-id-plugin: 2.2.3 → 2.2.6\n\ns3mock and akka-http-core move together: s3mock 0.2.6 pulls akka-http\n10.1.12, so leaving akka-http-core at 10.1.0 would put a newer http\nmodule over an older core. akka-http-core stays on 10.1.x, as 10.2+ is\nBUSL-1.1 licensed.\n\nTo make that linkage machine-checkable rather than a comment, s3mock\u0027s\nversion becomes a property and akka-http-core is annotated\n\u0027@pinned-with: ${s3mock.version}\u0027. The updater only tracks such linkages\nagainst property names, so an inline version could never trigger the\nadvisory. A future run that bumps s3mock now reports akka-http-core\nunder \"PINNED DEPS TO REVIEW\".\n\nnetty 4.1.137.Final also advances netty-tcnative to 2.0.81.Final via the\nnetty BOM.\n\nawssdk, hadoop, grpc and msgpack-core are deliberately left out: each\nwould ship a second copy of jars the back-compat bundles already carry,\nand extending the compat excludes to cover them (and, for grpc, their\ntransitives) needs its own change with binary-compatibility checks.\n\nExt-ref: MB-73268\nChange-Id: I65c855c1dbd466e0c72beaf5942b715cca339802\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21539\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "2f4fbacad6fe82e921fdf3fdf7ef71fd8de4a161",
      "tree": "844af6e3bd5ba759de49b7663e0767257c45918f",
      "parents": [
        "f9fc39c2119f50a56be2cec48f399a3e5a15791b",
        "dfd4f1ec1c74557a49686fa935b9ceef01b782f5"
      ],
      "author": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Wed Aug 12 00:42:43 2026 +0000"
      },
      "committer": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Wed Aug 12 00:42:43 2026 +0000"
      },
      "message": "Merge \"Null merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\""
    },
    {
      "commit": "dfd4f1ec1c74557a49686fa935b9ceef01b782f5",
      "tree": "b98a0b2dc708fd056baa3d1991806a99bae1e83f",
      "parents": [
        "812a051316422fd53ec5fdbde7c1426151578d18",
        "e7ae62cba67621a03ea9ced8e9575d4576b6c7e6"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 11 13:49:31 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 12 00:42:28 2026 +0000"
      },
      "message": "Null merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\n\n * [NO ISSUE][MISC] Add Claude Opus 5 to AiProvenance agents (MB-68099)\n\nChange-Id: Id27f4e8f6847533421e49e81fdc3b273556f3864\n"
    },
    {
      "commit": "f9fc39c2119f50a56be2cec48f399a3e5a15791b",
      "tree": "844af6e3bd5ba759de49b7663e0767257c45918f",
      "parents": [
        "812a051316422fd53ec5fdbde7c1426151578d18"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Tue Aug 11 12:28:47 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Tue Aug 11 22:51:12 2026 +0000"
      },
      "message": "[NO ISSUE][UI] Always use Bun for Dashboard Build\n\nDetails:\nIf node is present on a machine being used to build\nthe dashboard, the Angular build (ng) can potentially\nuse it instead of the installed version of Bun, even\nthough we use Bun to run the script to begin with.\n\nForcing use of Bun through bunfig.toml fixes this\nwithout requiring other environmental changes.\n\nChange-Id: I719673088db0fc809ec9ed8b208ae418a90b3d91\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21538\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Suryaa Charan Shivakumar \u003csshiv012@ucr.edu\u003e\n"
    },
    {
      "commit": "812a051316422fd53ec5fdbde7c1426151578d18",
      "tree": "b98a0b2dc708fd056baa3d1991806a99bae1e83f",
      "parents": [
        "f5d90d564944b93f938f23a9adaf3809daa8cb00"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Fri Jul 31 12:09:35 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Tue Aug 11 16:16:03 2026 +0000"
      },
      "message": "[NO ISSUE][CONF] Remove redundant --add-opens args\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nNow that the required --add-opens arguments are being\nput into the appassembler scripts, having the NCService\nadd them when starting an NC is redundant at best.\n\nChange-Id: I13ec2c1063754b93d1fad551362134c0d1c593d6\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21478\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "f5d90d564944b93f938f23a9adaf3809daa8cb00",
      "tree": "edba120767a185f9bf06d6bd9d9cc081f2045042",
      "parents": [
        "f8d01b9b9b12ced38201620e1f09f907988fa59e"
      ],
      "author": {
        "name": "Murtadha Hubail",
        "email": "murtadha.hubail@couchbase.com",
        "time": "Mon Aug 10 17:18:19 2026 +0300"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "murtadha.hubail@couchbase.com",
        "time": "Mon Aug 10 18:12:20 2026 +0000"
      },
      "message": "[ASTERIXDB-3771][COMP] Fix ANN top-k projection collision with meta()\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nThe vector-index-only fast path for ORDER BY ann_distance(...) LIMIT k\nqueries decided whether a projected field-access was PK-safe (and\ncould therefore be substituted with the vector index\u0027s PK variable)\nby field NAME alone, never checking whether that PK is sourced from\nthe data record or from meta(). When a dataset declared PRIMARY KEY\n(id) ON META() and the record itself also had its own unrelated field\nnamed \"id\", a query projecting the record\u0027s own \"id\" got it silently\nrewritten to the vector index\u0027s PK variable, so it returned meta().id\ninstead of the record\u0027s own field.\n\nIntroduceTopKAccessMethodRule.isProjectionPkOnly() and\nVectorIndexAccessMethod.createIndexSearchPlan() now consult\nDatasetUtil.getKeySourceIndicators() and match a field-access target\nonly against the record it is actually sourced from (data record vs.\nmeta record), the same way AbstractIntroduceAccessMethodRule already\ndoes for BTree/RTree secondary indexes.\n\nAdded create-index-vtree-meta-pk, a regression covering a meta()-\nsourced PK colliding in name with an undeclared (open) record field.\n\nEx-ref: MB-73218\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I3e8dcfdb87863674e4325dc7707ff410297919de\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21532\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "f8d01b9b9b12ced38201620e1f09f907988fa59e",
      "tree": "262d6f35b6cdbefcd4264e95d792be2aff48a59b",
      "parents": [
        "857b01c0ab6e7d2339d30a3ddd98a96630b27c8a"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sat Aug 08 14:04:55 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sun Aug 09 19:48:42 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][RT] Speed up vector index build\n\nCREATE INDEX on a vector index spent most of its time in a handful of\navoidable places, tried locally on a 100K-record, dim-384,\nnum_clusters\u003d300,train_list_fraction\u003d0.1,quantization\u003dSQ4,\nsimilarity\u003dCOSINE build using 3-node cluster with 5 compute\npartitions, 8 storage partitions.\n\n* Weighted k-means++ seeding recomputed every candidate\u0027s distance to\n  every already-accepted centroid on every iteration, making it\n  O(C*k^2). Keep a running nearest-centroid distance instead, folded\n  against only the newly accepted centroid: identical results (the\n  nearest-centroid distance is a running minimum, and the RNG draw\n  sequence is unchanged) at O(C*k). This phase was 66% of the job and\n  112M of its 161M distance computations; it is now 0.36M. Same fix\n  applied to the parent-level seeding loop, which had the same shape.\n\n* Lloyd\u0027s assignment pass read from a run-file reader already at EOF,\n  so the first iteration assigned nothing: every assignment stayed 0\n  and the update pass folded the whole sample into centroid 0,\n  overwriting it with the global mean and discarding one k-means++\n  seed. Rewind at the top of each iteration.\n\ncurrently DISABLED in this patch since it changes clustering:\n* k-means|| drew rounds*l \u003d 5*600 \u003d 3000 candidates from samples of\n  1250-2500 points, so the per-point Bernoulli trial accepted\n  essentially every point and the candidate set degenerated to the\n  whole sample -- making the rounds, and the weighting and dedup passes\n  that exist to shrink that set, pure overhead. Cap the expected\n  candidate count at half the sample.\n\nExt-ref: MB-72975\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I73dfb01ebb34fa989218056798555e42c418cca4\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21506\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\n"
    },
    {
      "commit": "857b01c0ab6e7d2339d30a3ddd98a96630b27c8a",
      "tree": "12575434734f01cc2b9db28d700d484e2249e22a",
      "parents": [
        "db88f805da229bf7a41a6310485dce7fb9180543"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sat Aug 08 13:36:08 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sun Aug 09 19:48:25 2026 +0000"
      },
      "message": "[ASTERIXDB-3754][STO] Fuse centroid decode into distance calculation\n\nAdd decodeAndApply(query, bytes, offset, length, dst): fuse decode,\nstore \u0026 measure distance in one pass. Add decodeAndApply(query, bytes,\noffset, length): same fused decode, but without a destination array,\nfor callers that only want the distance. Interior-node navigation is\nexactly that case -- it measures a centroid to choose a child and\ndiscards it -- so it now allocates nothing at all. decodeAndApply is\nnow used at the two hot sites in VTreeNavigationUtils.\n\nBoth overloads share one fused loop per metric with a nullable\ndestination rather than duplicating into eight. The null check is\nloop-invariant, so the JIT hoists it and elides the store entirely when\nthe destination is absent.\n\nDrop the defensive clone() on the leaf path: extractCentroid had just\nallocated that array, nothing else referenced it, and\nClusterSearchResult already documents its centroid as read-only.\n\nDecode centroids without a stream on the VTree navigation path: Every\ncentroid the navigation touches was decoded through a freshly allocated\nDataInputStream wrapping a ByteArrayInputStream. Add\nDoubleArraySerializerDeserializer.read(byte[], int, int), which decodes\nstraight from the page bytes, and use it from extractCentroid.\n\nExt-ref: MB-72975\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I942064fb651ce9044db5fba620ae986fa4cadc96\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21524\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "db88f805da229bf7a41a6310485dce7fb9180543",
      "tree": "5173dfeebd0a94550433443fbfb209f823a0c660",
      "parents": [
        "927438c233aee2f06d8967dec9ff6a9584ae885a"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sat Aug 08 12:22:43 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sun Aug 09 19:48:00 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][ASTERIXDB-3771][ASTERIXDB-3754] Vector index misc fixes\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nAddress the \"likely bugs\" findings from the review of the VTree vector\nindex stack (21099, 21100, 21159, 21287).\n\nStorage - VTree (21099):\n- VTree.handleMetadataPageOverflow: capture the split page\u0027s successor\n  before splitting and splice left -\u003e new -\u003e original. Splitting a\n  directory page that was not last in its chain terminated the right\n  half, orphaning every page after it (their data pages became\n  unreachable to the insert walk and to tryPhysicalDelete).\n  VTreeMetadataFrame.split now also preserves the frame\u0027s level instead\n  of hardcoding 0, and documents that re-linking is the caller\u0027s job.\n- VTreeBulkLoader.end: allocate the static-structure pages with\n  takeBlock(), not a takePage() loop - the loop can hand back\n  non-contiguous ids and break the (base + i) destination math.\n- VTreeSearchCursor: on every empty-cluster exit, release the abandoned\n  cluster\u0027s page and clear dataFrame/frameTuple\n  (markCurrentClusterEmpty). Leaving them set let the next hasNext()\n  read getNextPage() off the stale frame and silently resume the\n  abandoned cluster\u0027s chain, which is reachable because the LSM layer\n  re-points the cursor mid-cluster.\n- VTree.handleDataPageOverflow: enforce the \"directory page is empty\"\n  precondition it relies on; it does not link the new page into the\n  data-page chain, so on a populated directory the page would be\n  invisible to search.\n- VTreeStaticStructureBuilder.end: run the leaf resolve/upload pass\n  when the page it flushes is a leaf page. Previously that page was\n  published local-only and never uploaded in cloud deployments\n  (single-level structures, and end() on a partially-built one). The\n  pass is now idempotent so it cannot re-upload already-resolved\n  leaves.\n\nStorage - LSM VTree (21100):\n- LSMVTreeFileManager.validateStaticStructureFile: propagate I/O errors\n  instead of returning false. cleanupAndGetValidFiles reads false as\n  \"no static structure\" and deletes every data component, so a\n  transient failure (cloud hiccup, EMFILE, slow mount) destroyed the\n  whole index.\n- collectVTreeFiles: list through IIOManager rather than java.io.File,\n  which under-reports on cloud deployments.\n- LSMVTreeSearchCursor.isDeleted: restore the instanceof guard the\n  comment above it describes; a rebuilt ArrayTupleReference threw\n  ClassCastException mid-merge.\n- Both cursors: validate in doOpen that the comparators cover\n  \u003cdistance, PK...\u003e (LSMVTreeUtils.validateKeyComparators). A short\n  array silently shortened the key - merge order collapsing to\n  distance-only, and samePrimaryKey() becoming universally true.\n- LSMVTreeTopKSearchCursor: assert the index is quantized and that a\n  quantizer and quantized query vector were supplied. Cursor selection\n  hangs off the unrelated USE_TOPK_SEARCH flag, so a non-quantized\n  index read field 3 as the quantized embedding and mis-located the\n  PKs.\n- LSMVTreeSearchCursor: count K progress in doNext(), not doGetTuple().\n  getTuple() is not contractually once per tuple, so a second read\n  inflated progress and triggered early termination, reducing recall.\n- File references: carry the shared static structure in\n  LSMVTreeComponentFileReferences\u0027 own slot instead of the bloom-filter\n  slot, on both the merge and the recovery paths.\n- NprobeClusterSelectionStrategy: warn when epsilon \u003c\u003d 0 disables\n  level-wise probing entirely (the search silently degrades to a greedy\n  DFS from one cluster), and name the nprobe input for what it holds -\n  the epsilon-filtered candidate list, not the index\u0027s leaf clusters.\n- VTreeSearchOperatorNodePushable.resetSearchPredicate: reset every\n  predicate slot on every input row. The predicate is reused, so \"0\n  means default\" actually meant \"0 means the previous row\u0027s value\".\n\nTraining (21159):\n- SecondaryVectorOperationsHelper: clamp the computed num_clusters\n  default to at least 1 - sqrt(cardinality / partitions) is 0 for a\n  small dataset on a multi-partition cluster, and k-means cannot run\n  with K \u003d 0.\n- Seed the train-list sample from compiler.vector.trainseed as well, so\n  a sampled build (train_list_fraction \u003c 1.0) is reproducible rather\n  than seeded off the wall clock.\n\nDDL / query (21287):\n- PushFilterIntoVectorSearchRule: match INCLUDE fields on the full path\n  instead of the leaf name, require the field access to be rooted at\n  this search\u0027s own record variable, and resolve nested\n  field-access-by-index against the nested type rather than the\n  top-level one. Any of the three could push a predicate against the\n  wrong column.\n- VTreeSearchOperatorNodePushable: read integer query parameters by ADM\n  type tag. The fixed 4-byte read yielded 0 for an AInt64 k (LIMIT with\n  a BIGINT constant) after the compile-time narrowing was removed.\n- VectorIndexAccessMethod: settle the index-only preconditions before\n  the job-gen params are serialized into the index-search arguments.\n  Clearing indexOnly afterwards was a no-op on the emitted plan while\n  the runtime still emitted [pk..., dist].\n- QueryTranslator: reject a meta-sourced vector field (source\n  indicators are not persisted for a vector index - they are hardcoded\n  to RECORD_INDICATOR on read, so the index changed behaviour across a\n  restart), and reject a vector index on a dataset with a filter field,\n  which the index does not apply.\n- MetadataProvider: stop appending the unused filter column to the\n  vector index\u0027s field permutation.\n- SQLPP.jj: reject WITH on non-VTREE indexes and ENFORCED / CAST(...)\n  on VTREE ones, instead of parsing and silently discarding them.\n- IntroduceTopKAccessMethodRule.chooseVectorIndex: bail out when the\n  query has no distance metric rather than taking the first vector\n  index found, which could answer a cosine query from a euclidean\n  index.\n\nExt-ref: MB-72975\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I5141f71c2cf36aa28f487d050709161cedee1460\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21500\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n"
    },
    {
      "commit": "e7ae62cba67621a03ea9ced8e9575d4576b6c7e6",
      "tree": "eed8c7654ce2c550eb2defd6a2c5b30e4e6a7639",
      "parents": [
        "b1a6b121c036e0e5cbd67fee7d5bf5ae860a8399",
        "a495dddadc17f9cd7ecce687fda0a10a20ac13cf"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 09 12:51:16 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Aug 09 12:57:55 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Add Claude Opus 5 to AiProvenance agents (MB-68099)\n\nChange-Id: Ic710c3e38917236c6848e431fbe9fd1c80c867a7\nExt-ref: MB-68099\n"
    },
    {
      "commit": "927438c233aee2f06d8967dec9ff6a9584ae885a",
      "tree": "0cbb57700e5bebd4c8a0b6ebaf99f416f9bf3161",
      "parents": [
        "c12ed40b5762e7491f1436c329bfb60fef7c5696"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Thu Aug 06 19:14:54 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Sat Aug 08 11:41:11 2026 +0000"
      },
      "message": "[ASTERIXDB-3801][EXT] Cap COPY TO max-file-size at 5GB\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: no\n\nDetails:\nLower the upper bound of the max-file-size WITH option from 5TB to 5GB,\nThe lower bound of 5MB is unchanged.\n\nExt-ref: MB-70477\nChange-Id: I6acc84ee6dae890dc5266b68678ef8d6a6e9e1e0\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21498\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "c12ed40b5762e7491f1436c329bfb60fef7c5696",
      "tree": "8a1db659db4bf85dbfc45b43bc0d1aeb0595b2b3",
      "parents": [
        "96612e74472353e21cbbb48a03b8ded267e11c39"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Thu Aug 06 22:04:37 2026 -0700"
      },
      "committer": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Sat Aug 08 00:14:26 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][RT] Vector index class clean-ups\n\nRe-org the members of HierarchicalKMeansPlusPlusCentroidsOperatorDescriptor.\n\nExt-ref: MB-72975\nChange-Id: Ia6c7d8229c2a12ebc146d7f6ca89169901ab1f45\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21505\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n"
    },
    {
      "commit": "a495dddadc17f9cd7ecce687fda0a10a20ac13cf",
      "tree": "10fb6f3f00ac982287924e7acbd9676c04273253",
      "parents": [
        "814d5cfb7a4ba35513cd757ea06e9b20e0128f37"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 07 13:52:17 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Aug 07 19:31:05 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Add Claude Opus 5 to AiProvenance agents\n\nBackport of 3d8cb977d7 from totoro, so the constant is available on this\nbranch too; morpheus picks it up on the next merge up. Identical to the\ntotoro definition, so the merge is a no-op there.\n\nExt-ref: MB-68099\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Iab0d7f06a8111ac0e9e982440fc316a3e3dbdb27\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21507\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "96612e74472353e21cbbb48a03b8ded267e11c39",
      "tree": "290ab6d6b2c017fa3040bff66717d4c48efcfa53",
      "parents": [
        "f8a80193ba2951f3aa8b317acde8edd940100d69"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Thu Jul 30 14:59:30 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Thu Aug 06 14:55:50 2026 +0000"
      },
      "message": "[NO ISSUE][PKG] Add proper JVM args by default\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nThere are a variety of modules that AsterixDB needs\naccess to, to work properly. They are used for\nmany things, like hole punching for page-level caching\nwhen running the system with object storage backing.\nIf they are not given, the system fails in strange ways.\nSo, we should always have them present by default,\ninstead of having to add them into the config files\nevery time.\n\nChange-Id: Ia6e37080a581292111ddc1366b885526419c1a21\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21477\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Suryaa Charan Shivakumar \u003csshiv012@ucr.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "f8a80193ba2951f3aa8b317acde8edd940100d69",
      "tree": "fbdade2f2e199050b018663dd5dbd1f4e429aac1",
      "parents": [
        "d6343a4ea8ce46783cb878b0750d1f06e705bc04",
        "8cd3365576a88c71b0e3d2a85d4c6ee2e13d9af9"
      ],
      "author": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Thu Aug 06 14:14:45 2026 +0000"
      },
      "committer": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Thu Aug 06 14:14:45 2026 +0000"
      },
      "message": "Merge \"Merge branch \u0027lumina\u0027 into master\""
    },
    {
      "commit": "d6343a4ea8ce46783cb878b0750d1f06e705bc04",
      "tree": "7172657509d5511182146a18de2a0ebb7371c1c3",
      "parents": [
        "bc11e55ca41f7b5e8efadf2197d96f770241ddcd",
        "b1a6b121c036e0e5cbd67fee7d5bf5ae860a8399"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 21:04:47 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 06 13:26:27 2026 +0000"
      },
      "message": "Null merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73147)\n\nNothing carries forward: master is already at or ahead of morpheus on\nevery bump in that commit (azure blob/common/datalake/core-http-netty,\ncommons-codec, fastutil, jaxb-api/-impl/-runtime, freemarker, the\nmaven-* artifacts and the compiler/assembly/dependency plugins), and\nalready carries the @pinned/constraint comments it ports. Both pom.xml\nconflicts were resolved in favour of master, so the merged tree is\nidentical to master\u0027s.\n\nExt-ref: MB-73147\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I4996aa9b755cd759f29cf8455ced1530dbe7bb8e\n"
    },
    {
      "commit": "bc11e55ca41f7b5e8efadf2197d96f770241ddcd",
      "tree": "7172657509d5511182146a18de2a0ebb7371c1c3",
      "parents": [
        "4364b18776e6331808c62d1163592c62f30464d9"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 09:06:43 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Aug 06 00:41:00 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] +\u003d Document Gerrit remote and topic constraint\n\nRecord what the `gerrit` remote points at\n(ssh://\u003cuser\u003e@asterix-gerrit.ics.uci.edu:29418/asterixdb) and how to\nadd it when missing, so the push command is actionable without prior\nsetup.\n\nAlso document the topic constraint: the tooling that applies a topic\nacross projects errors out when a project has more than one open\nchange carrying that topic, so work split into a stack of commits\nwithin one repo must not put the shared topic on every commit. Record\nthe two ways out -- topic on the leaf commit only, or per-set\nintermediate topics -- along with the rule that unrelated follow-up\nwork gets no topic.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ibd49fdc6e7a09477179f994fb023e7ad5ade32ad\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21495\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "4364b18776e6331808c62d1163592c62f30464d9",
      "tree": "a402c572a713a5545a08f02fa52abb70bd62fee7",
      "parents": [
        "bc6386b7df130c6f719c9c7bcbf47bdfaf4b920d"
      ],
      "author": {
        "name": "Le0shy",
        "email": "leoshy1005@gmail.com",
        "time": "Tue May 26 13:25:47 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 05 14:31:49 2026 +0000"
      },
      "message": "[ASTERIXDB-3771][SQL++][COMP] Vector index DDL grammar and ANN top-k query support\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nAdd the SQL++ DDL/grammar for creating VTree vector indexes, plus the\nquery-side optimizer, physical operators, and runtime for approximate\nnearest neighbor (ANN) top-k search over them.\n\nDDL / grammar:\n- SQLPP.jj: CREATE INDEX \u003cname\u003e ON \u003cds\u003e(\u003cfield\u003e VECTOR) TYPE VTREE WITH\n  { dimension, similarity, num_clusters, train_list_fraction, ... }\n- CreateIndexStatement: vector-index AST (VECTOR field spec, TYPE VTREE,\n  INCLUDE fields, EXCLUDE UNKNOWN KEY)\n- VectorIndexDeclUtil: validates the WITH-clause parameters (required\n  similarity from an allowlist, dimension, quantization, etc.)\n\nANN function (compile-time desugar):\n- SqlppVectorDistanceRewriteVisitor: rewrites ann_distance(...) at the\n  SQL++ layer into the concrete vector-distance builtin (ASTERIXDB-3676)\n  carrying an AnnSearchPreferenceAnnotation that marks the call ANN /\n  vector-index-eligible.\n- AnnSearchPreferenceAnnotation: the hint the optimizer matches to\n  select the vector index.\n\nQuery optimizer / physical:\n- IntroduceTopKAccessMethodRule: matches LIMIT k -\u003e ORDER BY over the\n  ANN-annotated distance call and rewrites it to a vector index access\n- VectorIndexAccessMethod: IAccessMethod for vector index selection\n- VectorSearchPOperator / VectorJobGenParams: physical vector-search\n  operator\n- PushFilterIntoVectorSearchRule: pushes INCLUDE-field filters into the\n  vector search\n\nRuntime / metadata:\n- VectorDistanceFunctionFactory / VectorSimilarityMetric: distance\n  metric, fixed at index creation and carried by the factory\n- MetadataProvider: builds the vector-search operator for the query path\n\n\nExt-ref: MB-72975\nChange-Id: Iaa502b57915c75921cd5aa5c62fc0e24261bb0f6\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21287\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "bc6386b7df130c6f719c9c7bcbf47bdfaf4b920d",
      "tree": "9325347a708af66787b7f8cf88d4a226a45e779b",
      "parents": [
        "68d94be4b73d9cdcd25ac2b3fd16bf1b1a352ebd"
      ],
      "author": {
        "name": "Calvin Thomas Dani",
        "email": "calvinthomas.dani@gmail.com",
        "time": "Fri Apr 24 09:31:39 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 05 14:31:34 2026 +0000"
      },
      "message": "[ASTERIXDB-3760][RT] Training VTree index\n\n- user model changes: no\n- storage format changes: yes\n- interface changes: yes\n\nEnabled end-to-end VTree vector index creation from metadata (without\nDDL-only path) by adding clustering-based training, static structure\nbuild, grouped bulk load, and quantization (SQ4/SQ8) support across\nmetadata, runtime, and storage layers.\n\nCo-authored-by: Le0shy \u003cleoshy1005@gmail.com\u003e\nExt-ref: MB-72975\nChange-Id: I1264840ffd536d91c0ee11634abfd35a0ad79ecd\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21159\nContrib: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "68d94be4b73d9cdcd25ac2b3fd16bf1b1a352ebd",
      "tree": "d5923e310ccffae21270f8b92dac813fa8169f70",
      "parents": [
        "683af52e5b059803c570d6802872792da164654a"
      ],
      "author": {
        "name": "Le0shy",
        "email": "leoshy1005@gmail.com",
        "time": "Sun May 17 18:15:12 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 05 14:28:21 2026 +0000"
      },
      "message": "[ASTERIXDB-3754][HYR][TEST] Storage layer of VTree index - patch 3\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nUnit test suite for LSM VTree index covering build, bulk load, insert,\ndelete, merge, multi-thread, and quantized search paths.\nAdds the hyracks-storage-am-lsm-vtree-test module containing:\n- LSMVTreeBuildTest / LSMVTreeBulkLoadTest: static structure\n  construction and bulk loading\n- LSMVTreeInsertTest / LSMVTreeInsertIncludeTest: insert with and\n  without include fields\n- LSMVTreeDeleteTest / LSMVTreeDeleteIncludeTest: physical and\n  antimatter deletion paths\n- LSMVTreeMergeTest: LSM disk component merge correctness\n- LSMVTreeMultiThreadTest and LSMVTreeTestWorker: concurrent\n  insert/delete/search stress tests\n- Quantized search suite (insert/delete/search quantized cursor\n  variants)\n- Test harness, context, and drivers under util/\n\n\nExt-ref: MB-72975\nChange-Id: I98d65ca9f9d13e00110cc03d0461a491e4052fad\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21101\nContrib: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "683af52e5b059803c570d6802872792da164654a",
      "tree": "085689a82625f29747a4e65cb99c8316096ecece",
      "parents": [
        "3922c00ab8b59e7fc9d03bf4d3fa64b1e6269b34"
      ],
      "author": {
        "name": "Le0shy",
        "email": "leoshy1005@gmail.com",
        "time": "Sun May 17 18:14:54 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 05 14:28:02 2026 +0000"
      },
      "message": "[ASTERIXDB-3754][HYR][STO] Storage layer of VTree index - patch 2\n\n- user model changes: no\n- storage format changes: yes\n- interface changes: yes\n\nDetails:\nLSM VTree storage layer for hierarchical cluster-based approximate\nnearest neighbor search.\nAdds the hyracks-storage-am-lsm-vtree module:\n- LSMVTree: LSM-based vector index coordinating memory/disk components\n  and index operations\n- LSMVTreeLocalResource / LSMVTreeLocalResourceFactory: persisted index\n  resource\n- Vector search operator, streaming and top-K search cursors, and\n  cluster-selection strategies\n\n\nExt-ref: MB-72975\nChange-Id: I87c468c14cbeb3e698742429ee62df02c8e83efe\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21100\nContrib: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "3922c00ab8b59e7fc9d03bf4d3fa64b1e6269b34",
      "tree": "c1170b52eb61d72a19a29fd0917c2d6402e19393",
      "parents": [
        "e68ec2c5984c8357077a36f8bb81a9993cd94530"
      ],
      "author": {
        "name": "Le0shy",
        "email": "leoshy1005@gmail.com",
        "time": "Sun May 17 18:14:33 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Aug 05 14:27:44 2026 +0000"
      },
      "message": "[ASTERIXDB-3754][HYR][STO] Storage layer of VTree index - patch 1\n\n- user model changes: no\n- storage format changes: yes\n- interface changes: yes\n\nDetails:\nVTree storage layer implementation for hierarchical cluster-based\napproximate nearest neighbor search.\nBring in new hyracks-storage-am-vtree package containing:\n- Four specialized frame types (interior, leaf, metadata, data) for the\n  level clustering tree structure\n- VTree core with insert, delete, and search operations\n- Static structure builder invoked by k-means clustering\n- Bulk loader and flush loader for LSM disk component lifecycle\n- Tree navigation utilities to support index traversal\n\n\nExt-ref: MB-72975\nChange-Id: Id613553fb11bf97ca9c75ae843dee470acc36b5d\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21099\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nContrib: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "b1a6b121c036e0e5cbd67fee7d5bf5ae860a8399",
      "tree": "493c671cfc6c365ce61e224121251d1db9061715",
      "parents": [
        "f97e0581663f3b5e06de81fe45b97fc69ac5208b",
        "814d5cfb7a4ba35513cd757ea06e9b20e0128f37"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 07:00:43 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 07:37:48 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-73147)\n\nExt-ref: MB-73147\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I5f390d381aeae99211b150a4d37440ecd4c5a0e5\n"
    },
    {
      "commit": "814d5cfb7a4ba35513cd757ea06e9b20e0128f37",
      "tree": "bc49f0b7223bbd829e0b672a621656ef5be30426",
      "parents": [
        "0ce9c7c13dff0ac47388c23b4ca525fd9e910191"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 04 18:45:37 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 10:39:17 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.azure (azureblobjavasdk.version) 12.31.1 → 12.31.3\n - com.azure (azurecommonjavasdk.version) 12.30.1 → 12.30.3\n - com.azure (azurecorehttpnetty.version) 1.16.3 → 1.16.5\n - com.azure (azuredatalakejavasdk.version) 12.24.1 → 12.24.3\n - com.sun.xml.bind:jaxb-impl: 2.3.2 → 2.3.9\n - commons-codec:commons-codec: 1.22.0 → 1.22.1\n - it.unimi.dsi:fastutil: 8.5.6 → 8.5.19\n - javax.xml.bind:jaxb-api: 2.3.0 → 2.3.1\n - org.apache.maven\n     - maven-artifact: 3.8.4 → 3.8.9\n     - maven-compat: 3.8.4 → 3.8.9\n     - maven-core: 3.8.4 → 3.8.9\n     - maven-model: 3.8.4 → 3.8.9\n     - maven-plugin-api: 3.8.4 → 3.8.9\n - org.apache.maven.plugins\n     - maven-assembly-plugin: 3.1.0 → 3.1.1\n     - maven-compiler-plugin: 3.8.0 → 3.8.1\n     - maven-dependency-plugin: 3.6.0 → 3.6.1\n - org.freemarker:freemarker: 2.3.31 → 2.3.34\n - org.glassfish.jaxb:jaxb-runtime: 2.3.5 → 2.3.9\n\nRecord existing constraints as version comments so the dependency\nupdater skips them rather than offering known-bad updates. These already\nexist on master and are ported so both branches carry the same\nknowledge: twitter4j cannot build past 4.0.3; the core-io 1.x here must\nnot move until its uses are removed; apache-rat 0.15+ removed the\nlicense implementation classes these poms configure; akka-http-core must\nstay on 10.1.x to match s3mock; maven-antrun-plugin must not reach\n3.2.0.\n\nExt-ref: MB-73147\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Ib08202babcaf95c6b174777a40180e62b700d9b4\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21491\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "e68ec2c5984c8357077a36f8bb81a9993cd94530",
      "tree": "f94320541613ef56c9c845a37f4c0849ad70ea3e",
      "parents": [
        "75bedac9231451bfa17838c809b25f69711b9509"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 04 15:58:53 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Aug 05 10:38:57 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.fasterxml.woodstox:woodstox-core: 7.2.1 → 7.2.2\n - com.github.javaparser:javaparser-core: 3.26.4 → 3.28.2\n - com.google.cloud (google-cloud-core.version) 2.72.0 → 2.73.0\n     - google-cloud-core\n - com.google.cloud (google-cloud-storage.version) 2.70.0 → 2.71.0\n     - google-cloud-storage\n - commons-codec:commons-codec: 1.22.0 → 1.22.1\n - io.grpc:grpc-bom: 1.83.0 → 1.83.1\n - io.grpc:grpc-netty: 1.83.0 → 1.83.1\n - org.apache.httpcomponents.client5\n     - httpclient5: 5.6.2 → 5.6.3  (test only)\n - software.amazon.awssdk (awsjavasdk.version) 2.49.6 → 2.50.3\n     - bom\n     - netty-nio-client\n     - sdk-core\n - software.amazon.awssdk.crt (awsjavasdk.crt.version) 0.48.0 → 0.48.2\n     - aws-crt\n\nnetty is deliberately not advanced: it stays on the 4.1.x line, since\n4.2 is a new generation. Minor updates were taken for everything else.\n\nExt-ref: MB-72431\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I37298352aae05b01fe7b6772431e8702b7c98d72\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21490\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "75bedac9231451bfa17838c809b25f69711b9509",
      "tree": "ea9a0a1114bfddf5d2bd2796abada4868040ef07",
      "parents": [
        "d50665743fb7e5b633f9acc78d104d44271ad210"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Wed Jul 29 16:00:33 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Tue Aug 04 18:35:10 2026 +0000"
      },
      "message": "[ASTERIXDB-3801][EXT] Support max-file-size for COPY TO\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDescription:\nAdd a max-file-size WITH option that bounds the size of each file\nproduced by COPY TO, complementing the existing max-objects-per-file\nrow cap.\n\nExt-ref: MB-70477\nChange-Id: I44e6777175c507b1c289fd7cb8985e23331fdd49\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21471\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "d50665743fb7e5b633f9acc78d104d44271ad210",
      "tree": "67071dd2e8486065d97088e45381792ebd337fad",
      "parents": [
        "b487f67a7034feb4c0da7bb77ee6148281946ad7"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Sat Jul 18 00:30:32 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Tue Aug 04 05:46:58 2026 +0000"
      },
      "message": "[NO ISSUE][TEST] Fix GlobalVirtualBufferCacheTest flush size flakiness\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\ntestFlushes asserted each filtered disk component\u0027s on-disk file\nlength was \u003c\u003d the 16KB filtered memory-component cap. That compares\non-disk bytes (page \u003d 1KB data + 8B reserved header \u003d 1032B) against\nthe in-memory page budget. A filtered component also flushes on\nwriter-exit rather than the instant it hits the cap, so with\nconcurrent writers it overshoots by a variable amount (observed up\nto 19 disk pages vs a ~14-page mode). The strict bound failed\nintermittently.\n\nAssert the cap\u0027s intent instead: filtered components stay within 2x\nthe configured max. That separates legitimate concurrent-writer\novershoot from a broken cap, since uncapped components grow to the\nshared global-budget scale (~51 disk pages here). Also log\nper-component page counts to aid future diagnosis.\n\nExt-ref: MB-73073\nChange-Id: Ib66440a320a28e771f8ca0155a14bf651f175b94\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21439\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "b487f67a7034feb4c0da7bb77ee6148281946ad7",
      "tree": "69ccf2ff9f4b0b06de856f9128a8e590278ae138",
      "parents": [
        "898ce6154c9e6aec21a43bf53d6e2b20e09775b0"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Feb 18 22:31:52 2024 -0500"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 04 01:48:21 2026 +0000"
      },
      "message": "[NO ISSUE][HYR][NET] Use executor service for async handshakes\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\n- asynchronous socket handshakes were submitted to the\n  ForkJoinPool.commonPool() default executor of\n  CompletableFuture.supplyAsync(). Handshakes block, so on a\n  cores-1-wide common pool they can starve, and compete with any other\n  common pool user in the JVM. Thread the owning service\u0027s executor\n  through to TCPEndpoint and IPCConnectionManager instead\n- interface changes: the constructors of MuxDemux, TCPEndpoint,\n  IPCSystem, ResultSet, ResultDirectory, ClientNetworkManager,\n  NetworkManager, ResultNetworkManager, HyracksConnection and the two\n  hdfs Schedulers now take the executor to use, as their last argument\n- HyracksConnection(ccHost, ccPort) has no executor to inherit, so it\n  creates one; it is daemon-threaded and shut down by close() so the\n  convenience constructor does not leak a pool per connection\n\nChange-Id: Ibe2fdce979a49d962517494dc77a5616a19f6abf\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18168\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "898ce6154c9e6aec21a43bf53d6e2b20e09775b0",
      "tree": "0becc28aa38371ff3cc74b6a2e1507de06824d6d",
      "parents": [
        "281e5182b182a51e4f9d26c3e8a6850e7b92325d"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jun 21 14:23:50 2024 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 04 01:26:42 2026 +0000"
      },
      "message": "[NO ISSUE][*DB][RT] CCMessageBroker fixes\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\n- only wait for the remaining timeout when awaiting NC responses; the\n  prior code passed the full timeout to each wait(), so a trickle of\n  responses could keep the caller blocked well past its deadline\n- drop the redundant Thread.currentThread().interrupt(); the thread is\n  already re-interrupted by HyracksDataException.create() when the\n  cause is an InterruptedException\n- drop the redundant re-check of the response counter; the enclosing\n  while condition already covers it\n- simplify/cleanup logic\n\nChange-Id: I19606553af5dde0ed7221563fdb84671ead75881\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18396\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "281e5182b182a51e4f9d26c3e8a6850e7b92325d",
      "tree": "e1c7710bb8a0392867e4c1176dd77edf2e56cbdd",
      "parents": [
        "2a0b6df91ee8a6a468c295036eaf825ec83d1fa3"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Aug 03 12:37:53 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Aug 04 01:26:20 2026 +0000"
      },
      "message": "[NO ISSUE][EXT] List HDFS input paths single-threaded when using Kerberos\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nFileInputFormat delegates input path list to LocatedFileStatusFetcher,\nwhich globs on a thread pool obtained from HadoopExecutors, whenever\nmapreduce.input.fileinputformat.list-status.num-threads is greater than\none. As of Java 24 (JEP 486) the Subject established by\nUserGroupInformation.doAs is no longer inherited by child threads, and\nHadoopExecutors does not use SubjectInheritingThread, so those pool\nthreads resolve the current user to the process login user instead of\nthe delegation-token UGI we authenticated with. A secured NameNode then\nrejects the connection with \"SIMPLE authentication is not enabled.\nAvailable:[TOKEN, KERBEROS]\".\n\nPin the listing to a single thread on the Kerberos path so the glob runs\non the calling thread and stays inside the doAs. Non-Kerberos external\ndatasets are unaffected and keep the parallel listing.\n\nThe fetcher parallelizes per input path and per discovered directory. We\nset a single input dir and do not enable recursive listing, so for a\nconcrete path this forfeits little or nothing; the parallelism only\nmatters for wildcard paths spanning multiple directories.\n\nThis is a workaround for a Hadoop issue that is already fixed upstream:\nHADOOP-19906 restores Subject propagation to child threads by cascading\nit through an InheritableThreadLocal in SubjectUtil, which covers the\nfetcher\u0027s pool threads. It is fixed in 3.4.4, 3.5.1 and 3.6.0, none of\nwhich are released yet; 3.5.0 is current. This pin should be reverted\nonce we can consume one of those releases; MB-73136 tracks that revert,\nand a note sits on the hadoop.version property so it is seen when the\nversion is bumped.\n\nExt-ref: MB-73072, MB-73136\nChange-Id: Ieb4abb77d8684e5b0b4c05ba9c3c79f5fcaa59f4\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21488\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "2a0b6df91ee8a6a468c295036eaf825ec83d1fa3",
      "tree": "a5d65d7022a0cdef2dd3164cb813d5769201ba45",
      "parents": [
        "c40857b78f3a430b631660199fbcdf25544f7399"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Tue Jul 28 12:43:29 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Aug 03 13:25:24 2026 +0000"
      },
      "message": "[ASTERIXDB-3798][RT] Clear pendingRemoval when participation ends\n\nClusterStateManager.removePending() registers a node as pending removal\nonly if it is currently a participant, but nothing cleared the\nregistration when participation ended.  pendingRemoval had exactly two\nexits - cancelRemovePending(), a caller-driven undo, and\nnotifyNodeFailure() - while the two methods that actually drop a node\nfrom participantNodes, deregisterNodePartitions() and\nupdateNodeState(nodeId, false, ...), left it untouched.\n\nA node removed cleanly therefore stranded its entry permanently:\nINodeManager.removeNode(), unlike failNode(), raises no\nICCContext.notifyNodeFailure(), so the only hook that scrubs the set\nnever fired.  The entry could not be repaired through the API either,\nsince removePending() refuses a non-participant, logging \"Cannot\nregister unknown node ... for pending removal\" at WARN instead.\n\nBeyond the unbounded set and the log noise, the correctness exposure is\na stranded entry whose id is still - or again - a participant, whether\nby node id reuse or by a caller that registers and then fails before\ncancelling.  getParticipantNodes(true) and\nresetClusterPartitionConstraint() both removeAll(pendingRemoval)\nsilently, so such a node is invisibly dropped from dataset node group\ncreation, replica and metadata node placement, cluster-active gating\nand job placement, with nothing logged.\n\nClear pendingRemoval on both departure paths, making\npendingRemoval subset-of participantNodes an enforced invariant rather\nthan a precondition checked only on insert.  In\nderegisterNodePartitions() this is done unconditionally, outside the\nalready-deregistered early return, which would otherwise skip the\ncleanup.\n\nThe registration is deliberately not cleared on the activation path:\nwhile a removal is genuinely in flight it is what keeps the target out\nof the cluster locations, as its partitions remain in clusterPartitions\nuntil they are deregistered, so clearing on re-activation would let a\nnode that flaps mid-removal put its partitions back into query plans.\nCovering departure suffices - a reused id cannot inherit a stale flag\nif the flag never survives the departure.\n\nExt-ref: MB-73045\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: Icfb9c969022c04be184eb2905392f0abb3e02682\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21469\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "8cd3365576a88c71b0e3d2a85d4c6ee2e13d9af9",
      "tree": "dd6b9074aa91ad73cd8905eb391c1618b0a8ecb9",
      "parents": [
        "c40857b78f3a430b631660199fbcdf25544f7399",
        "522af435b24e5dd7839b1b7d8fe48494916e7f5b"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Aug 03 18:49:38 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Aug 03 18:49:38 2026 +0530"
      },
      "message": "Merge branch \u0027lumina\u0027 into master\n\nForward-integrate lumina to master (helios): ASTERIXDB-3794 page-zero meta-column fit-check (522af43).\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: Ifb0a29c7bb5eb9d39ad8477bf9edd29e82546dd3\n"
    },
    {
      "commit": "c40857b78f3a430b631660199fbcdf25544f7399",
      "tree": "9e03ea221318b13dff6d2c00ff255124d75eed7c",
      "parents": [
        "2a80c1878e3d323dcc740996108279daddc0c183"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 30 07:26:11 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 30 15:13:20 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.github.eirslett:frontend-maven-plugin: 2.0.1 → 2.0.2\n - com.github.javaparser:javaparser-core: 3.26.3 → 3.26.4\n - org.glassfish.jaxb:jaxb-runtime: 2.3.5 → 2.3.9\n - software.amazon.awssdk (awsjavasdk.version) 2.49.3 → 2.49.6\n     - bom\n     - netty-nio-client\n     - sdk-core\n\njavaparser-core and jaxb-runtime are declared inside \u003cplugin\u003e\n\u003cdependencies\u003e (impsort-maven-plugin and maven-jaxb2-plugin), and had\nnever been considered by the updater: its block scan consumed the whole\n\u003cplugin\u003e element, so dependencies nested in a plugin were invisible.\nThat also meant a versionless plugin\u0027s first nested \u003cversion\u003e was taken\nfor the plugin\u0027s own, binding the wrong coordinates to a property. Both\nare fixed in the updater; these two are the first results.\n\nChange-Id: I02aa9fdcbf90664d31b4409da9c36e06b3c08eb3\nExt-ref: MB-72431\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21473\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "2a80c1878e3d323dcc740996108279daddc0c183",
      "tree": "03af2e9134ad8aa82a732999dc0d27c6cc33a474",
      "parents": [
        "a010add9e66c080eac9f79ebbfbc04c2211ee8b3"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Mon Jul 27 16:21:45 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "ritik.raj@couchbase.com",
        "time": "Wed Jul 29 19:53:55 2026 +0000"
      },
      "message": "[ASTERIXDB-3799][COMP] Do not count unrealizable index NL join hints\n\n  - user model changes: no\n  - storage format changes: no\n  - interface changes: no\n\nDetails:\nAn index nested-loop join hint was credited to a plan even when the\nindex it names is already consumed by the inner side\u0027s own predicates,so the hint cannot actually be realized in that plan. The inflated numHintsUsed then let the hinted plan outrank a cheaper realizable one and the enumerator settled on the wrong join order. Count the hint only when the chosen index is not already claimed by a local predicate on the inner side, and track which index the cost comparison picked so the check has something to test.\n\nEx-ref: MB-73018\nChange-Id: Ibf97e10479a8b6b29eeccb914967ab5140599d7e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21465\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nTested-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\n"
    },
    {
      "commit": "a010add9e66c080eac9f79ebbfbc04c2211ee8b3",
      "tree": "8270f7eeeae1f2fc2d9a63bc07ce307b86e005e5",
      "parents": [
        "a430b1f87784eaa91ddda0699677f036b5c740ad"
      ],
      "author": {
        "name": "Shahrzad Shirazi",
        "email": "Shahrzad.shirazi@couchbase.com",
        "time": "Thu May 28 10:24:06 2026 -0700"
      },
      "committer": {
        "name": "Shahrzad Shirazi",
        "email": "Shahrzad.shirazi@couchbase.com",
        "time": "Wed Jul 29 16:57:34 2026 +0000"
      },
      "message": "[ASTERIXDB-3783][COMP] Implement hash-based COUNT(DISTINCT) aggregation\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nExt-ref: MB-72573\n\nChange-Id: Ia6e37080a581292111ddc1366b885526412c16ac\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21292\nReviewed-by: Shahrzad Shirazi \u003cshaji013@ucr.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n"
    },
    {
      "commit": "a430b1f87784eaa91ddda0699677f036b5c740ad",
      "tree": "cd4ac7efb56afe3f8be3b914a5948ec0a982dd32",
      "parents": [
        "7b517cb6fbb138d849cf34440f6bd31a723f73b8"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Jul 27 17:45:52 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Jul 29 14:49:20 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - com.azure (azureblobjavasdk.version) 12.34.0 → 12.35.0\n     - azure-storage-blob\n - com.azure (azurecommonjavasdk.version) 12.33.0 → 12.34.0\n     - azure-storage-common\n - com.azure (azuredatalakejavasdk.version) 12.27.0 → 12.28.0\n     - azure-storage-file-datalake\n - com.azure:azure-storage-blob-batch: 12.30.0 → 12.31.0\n - com.fasterxml.woodstox:woodstox-core: 7.1.1 → 7.2.1\n - com.github.jnr (jnr-ffi.version) 2.2.19 → 2.3.0\n     - jnr-ffi\n - com.github.jnr (jnr-posix.version) 3.1.22 → 3.2.1\n     - jnr-posix\n - com.google.cloud (google-cloud-core.version) 2.70.0 → 2.72.0\n     - google-cloud-core\n - com.google.cloud (google-cloud-storage.version) 2.68.0 → 2.70.0\n     - google-cloud-storage\n - com.google.protobuf (protobuf-java.version) 4.34.2 → 4.35.1\n     - protobuf-java\n     - protobuf-java-util\n - com.nimbusds:nimbus-jose-jwt: 10.0.2 → 10.9.1\n - com.rometools\n     - rome: 1.7.4 → 1.19.0\n     - rome-fetcher: 1.7.4 → 1.19.0\n - io.delta:delta-standalone_2.12: 3.0.0 → 3.3.2\n - io.grpc\n     - grpc-bom: 1.82.1 → 1.83.0\n     - grpc-netty: 1.82.1 → 1.83.0\n - io.netty (netty.tcnative.version) 2.0.80.Final → 2.0.81.Final\n     - netty-tcnative-boringssl-static\n     - netty-tcnative-classes\n - io.trino.tpch:tpch: 1.2 → 1.4\n - it.unimi.dsi:fastutil: 8.5.18 → 8.5.19\n - net.minidev:json-smart: 2.4.11 → 2.6.0\n - nl.lexemmens:podman-maven-plugin: 1.8.0 → 1.19.0\n - org.apache.hadoop\n     - hadoop-client-api: 3.4.3 → 3.5.0  (test only)\n     - hadoop-client-runtime: 3.4.3 → 3.5.0  (test only)\n - org.apache.hadoop (hadoop.version) 3.4.3 → 3.5.0\n     - hadoop-annotations\n     - hadoop-aws\n     - hadoop-azure\n     - hadoop-client\n     - hadoop-common\n     - hadoop-hdfs\n     - hadoop-hdfs-client\n     - hadoop-mapreduce-client-core\n     - hadoop-minicluster\n     - hadoop-minikdc\n     - hadoop-yarn-client\n - org.apache.httpcomponents.client5:httpclient5: 5.5.2 → 5.6.2  (test only)\n - org.apache.logging.log4j (log4j.version) 2.25.5 → 2.26.1\n     - log4j-bom\n     - log4j-jcl\n - org.apache.maven.plugins\n     - maven-dependency-plugin: 3.10.0 → 3.11.0\n     - maven-failsafe-plugin: 2.21.0 → 2.22.2\n     - maven-jar-plugin: 3.5.0 → 3.5.1\n     - maven-site-plugin: 3.21.0 → 3.22.0\n - org.apache.wicket:wicket-util: 8.2.0 → 8.18.0  (test only)\n - org.apache.zookeeper:zookeeper: 3.4.14 → 3.9.5\n - org.bouncycastle\n     - bcpkix-jdk18on: 1.84 → 1.85\n     - bcprov-jdk18on: 1.84 → 1.85\n - org.codehaus.jettison:jettison: 1.5.6 → 1.5.7\n - org.codehaus.mojo:versions-maven-plugin: 2.5 → 2.21.0\n - org.codehaus.plexus:plexus-utils: 3.1.1 → 3.6.1\n - org.jvnet.jaxb2.maven2:maven-jaxb2-plugin: 0.14.0 → 0.15.3\n - org.mockito:mockito-core: 3.10.0 → 3.12.4\n - org.ow2.asm (asm.version) 9.3 → 9.10.1\n     - asm\n     - asm-analysis\n     - asm-commons\n     - asm-tree\n     - asm-util\n - org.postgresql:postgresql: 42.2.29 → 42.7.13  (test only)\n - org.reflections:reflections: 0.9.12 → 0.10.2  (test only)\n - org.vafer:jdeb: 1.8 → 1.14\n - software.amazon.awssdk (awsjavasdk.version) 2.44.14 → 2.49.3\n     - bom\n     - netty-nio-client\n     - sdk-core\n - software.amazon.awssdk.crt (awsjavasdk.crt.version) 0.46.1 → 0.48.0\n     - aws-crt\n - tech.allegro.schema.json2avro:converter: 0.2.15 → 0.3.0\n\nDeliberately left pinned (marked \u0027@pinned\u0027 in the poms):\n\n - apache-rat-plugin at 0.12/0.13: 0.15+ replaced the license\n   configuration model, dropping the license/licenseFamily\n   implementation classes these poms configure.\n - delta-kernel-api/-defaults at 4.0.1: 4.1+ reworked ScanStateRow and\n   ParquetHandler, which asterix-external-data subclasses.  No advisory\n   affects 4.0.1, so the pin costs no CVE coverage.\n - formatter/impsort-maven-plugin at 2.0.1/1.9.0: newer versions rewrap\n   javadoc @param and reformat the whole tree; being advanced separately.\n\nSource change required by the log4j update:\n\n - NC/CCLogConfigurationFactory: cast null to URI.  log4j 2.26 added\n   getConfiguration(LoggerContext, String, List\u003cURI\u003e), making the\n   existing call ambiguous against our own URI overload.  Behaviour is\n   unchanged: the base List\u003cURI\u003e method delegates to the URI variant.\n\nExt-ref: MB-72431\nChange-Id: I24d561a1ac1253ecacfb24eb5387381a7a719dfe\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21466\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "7b517cb6fbb138d849cf34440f6bd31a723f73b8",
      "tree": "ecb95d31a5a31726fe9594bfeaf432f6d8dc825c",
      "parents": [
        "49d9d44fe32f54f3a26bc4eaee38ec777c508bc1"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Fri Jul 24 14:14:39 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "ritik.raj@couchbase.com",
        "time": "Wed Jul 29 13:02:00 2026 +0000"
      },
      "message": "[ASTERIXDB-3797][COMP] Improve the CBO cost model\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails: Improved the CBO cost model\n\nExt-ref: MB-73032\n\nChange-Id: Ia9f404c5906dd3a5536955e47b03e1f1210c2d56\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21460\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Preetham Poluparthi\nTested-by: Preetham Poluparthi\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\n"
    },
    {
      "commit": "49d9d44fe32f54f3a26bc4eaee38ec777c508bc1",
      "tree": "a44cfde4e758b3dc4654e805e104db973928bd7c",
      "parents": [
        "037424e2bf181dc3a7b33cc743f3b6b24bd7895b"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 27 15:08:03 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Tue Jul 28 19:07:48 2026 +0000"
      },
      "message": "[NO ISSUE][RT] Fix clean-JSON printing of day_time_duration\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nThe clean-JSON day_time_duration printer emitted a stray \u0027)\u0027 after the\nclosing quote (copy-pasted from the ADM printer), producing invalid\nJSON such as \"PT1H30M\") for any result containing a day_time_duration.\nDrop the extra \u0027)\u0027.\n\nChange-Id: Icfb12e13264896cc46c2486309b4b0c3d164f1a5\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21467\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\n"
    },
    {
      "commit": "037424e2bf181dc3a7b33cc743f3b6b24bd7895b",
      "tree": "cf70131d6f1a0f14ab8f4100cb25845bfcbc86a3",
      "parents": [
        "4121eab470c1f52eb6891c06b12731b7c8c75856"
      ],
      "author": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Mon Jul 20 07:01:01 2026 +0300"
      },
      "committer": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Tue Jul 28 16:28:17 2026 +0000"
      },
      "message": "[NO ISSUE][EXT]: Add Iceberg VARIANT shredding tests\n\nDetails:\n- add tests for fully shreeded variants.\n- add tests for partially shredded variants.\n\nExt-ref: MB-72919\nChange-Id: I9be40b9de107bf5cb7df952a77a505d84b9cfc77\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21451\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nTested-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "4121eab470c1f52eb6891c06b12731b7c8c75856",
      "tree": "2b5b48d120923888c4b8895f403165a2ea92c6d4",
      "parents": [
        "1fbb1d74ab0688a06945108eca5da7bb6c01f890"
      ],
      "author": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Tue Jun 23 06:48:01 2026 +0300"
      },
      "committer": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Tue Jul 28 13:10:43 2026 +0000"
      },
      "message": "[NO ISSUE][EXT]: Handle interrupts when reading external collections\n\nDetails:\n- handle interrupts when reading from external collections.\n- handle invalid utf8 chars when reading from external collections.\n- add property to handle invalid characters, values are:\n  - replace (default) to replace invalid chars with ? and continue\n    reading\n  - fail to fail fast and stop reading\n- issue a warning if replacement takes place.\n\nExt-ref: MB-72470, MB-72724\nChange-Id: Ib4c6f48470b77d3ba1e7bcc35240df468835f132\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21403\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "1fbb1d74ab0688a06945108eca5da7bb6c01f890",
      "tree": "9a7689c0daa39ab1c28d69b3de199aba536bf04c",
      "parents": [
        "7cc7b65300db92ea8eb090fd8407681c2ed7355d"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Jan 21 15:00:25 2026 -0800"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Mon Jul 27 18:20:19 2026 +0000"
      },
      "message": "[ASTERIXDB-1888][RT] Use merging connector for pre-sorted load\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: no\n\nDetails:\nThe hash merge connector is disabled by default because in certain\ncircumstances, it can cause a deadlock in large clusters. However,\nfor the application of LOAD, it can still be useful. It is better\nto occasionally have to retry LOAD than it is to suffer with it\nwriting sort runs for enormous datasets for no good reason.\nSo, in the case of a LOAD statement with the pre-sorted keyword\ngiven, the proper connector should be used. Furthermore, add a\n\"false\" setting for the hint, to force it off even in this case,\nto have an escape hatch if needed.\n\nChange-Id: I646539d88ea2bdc6da4fbf2b6e94e0a61c3125a9\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20835\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "7cc7b65300db92ea8eb090fd8407681c2ed7355d",
      "tree": "19e81d05c9a0183da7482c2f9cac05ce7513b190",
      "parents": [
        "66752475945c5823825ecb66d996c3a36a381cea",
        "f97e0581663f3b5e06de81fe45b97fc69ac5208b"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Jul 26 10:26:02 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Jul 26 10:26:02 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-72967)\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-72967)\n\nThe only asterixdb/pom.xml conflict resolution that carries forward is\nlog4j 2.25.5; master is already at or ahead of morpheus on the other\nbumps in those commits (parquet, commons-codec/-compress/-csv) and\nalready uses the @pinned-with annotations they introduce.\n\nExt-ref: MB-72967\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I3197807ad5fc2672089467e88c4f7e0e2a1c2253\n"
    },
    {
      "commit": "66752475945c5823825ecb66d996c3a36a381cea",
      "tree": "98ed7eb493d23d14075b1443143015955fb75b50",
      "parents": [
        "bcb8e9b8aed4cc5155cc28bbef5819dbdc355f1d"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sat Jul 25 10:46:12 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Sun Jul 26 14:17:26 2026 +0000"
      },
      "message": "[NO ISSUE][HYR][MISC] Add Claude Opus 5 to AiProvenance agents\n\nAdd the CLAUDE_OPUS_5 agent so code authored by that model can be\nannotated accurately rather than falling back to an older agent.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nChange-Id: I7a5a7dfb1e321bd3b23b00b225ba6ed358655f30\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21464\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "bcb8e9b8aed4cc5155cc28bbef5819dbdc355f1d",
      "tree": "111384e096e2a6e1f320cabcdd002032f678e7bf",
      "parents": [
        "bb60e42fecef128b5b9f13f6bcdb259f72f0d2bb"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Thu Jul 23 14:46:10 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Sat Jul 25 08:44:46 2026 +0000"
      },
      "message": "[ASTERIXDB-3183][COMP] Address review comments for query plan cache(21436)\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDescription: Address review comments for query plan cache result metadata\n\nEx-ref: MB-72415\nChange-Id: I9b1e4dd55301dd34dd763d47a9f507ac552a5c7f\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21453\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "f97e0581663f3b5e06de81fe45b97fc69ac5208b",
      "tree": "721fc0ef4736459263a846001adbbe0877a99007",
      "parents": [
        "45c28cb2df26d598da60ff180f34e2cb10d84003",
        "0ce9c7c13dff0ac47388c23b4ca525fd9e910191"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 20:34:47 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 20:34:47 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-72967)\n\nExt-ref: MB-72967\nChange-Id: Idc67cc213dba8e6e024362759d4698184ad1a0cd\n"
    },
    {
      "commit": "0ce9c7c13dff0ac47388c23b4ca525fd9e910191",
      "tree": "6b2c795f60e426888a714639e280b0097a64f081",
      "parents": [
        "c65bb5938a8fae49ad2587879fc408be6706def6"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 19:05:53 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 23:37:10 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - parquet: 1.17.0 → 1.17.1\n     (org.apache.parquet)\n\nExt-ref: MB-72967\nChange-Id: I2071918d35e689900f0cd44970965daf5e41d00b\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21457\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "45c28cb2df26d598da60ff180f34e2cb10d84003",
      "tree": "04bd015ac887a10717f1823cbc5e7affd408e239",
      "parents": [
        "840950d58ec48e19fcab0de7973d2a3090d0941b",
        "c65bb5938a8fae49ad2587879fc408be6706def6"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 14:30:48 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 14:30:48 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Dependencies to address CVEs (MB-72967)\n\nExt-ref: MB-72967\nChange-Id: I8cb7c9b84087f85a7a3950eb65b3422a79d797bf\n"
    },
    {
      "commit": "c65bb5938a8fae49ad2587879fc408be6706def6",
      "tree": "4ac0a0aad1ea31508ac8412ac18df7240e88cbb4",
      "parents": [
        "bb6fdf65fc8455a3ebd4f65968452890254f6c59"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 11:17:26 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 23 18:28:19 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Dependencies to address CVEs\n\n - jackson: 2.22.0 → 2.22.1\n     (com.fasterxml.jackson.core)\n     (com.fasterxml.jackson.dataformat)\n     (com.fasterxml.jackson.datatype)\n - commons-codec: 1.17.1 → 1.22.0\n - commons-io: 2.18.0 → 2.22.0\n - commons-logging: 1.3.6 → 1.4.0  (build only)\n - commons-collections4: 4.4 → 4.5.0\n - commons-compress: 1.27.1 → 1.28.0\n - commons-csv: 1.12.0 → 1.14.1\n - commons-lang3: 3.18.0 → 3.20.0\n - commons-text: 1.12.0 → 1.15.0\n - log4j: 2.25.4 → 2.25.5\n     (log4j)\n     (org.apache.logging.log4j)\n\nExt-ref: MB-72967\nChange-Id: I5b42fe2d4399a4e159d80b106b0ca81551d94751\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21454\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "bb60e42fecef128b5b9f13f6bcdb259f72f0d2bb",
      "tree": "a1ee70eebd5a52b0c595166ee20a78756b7c7b89",
      "parents": [
        "ca8bc8266c9496aa498cef4b68771c2b1c4d1418"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Thu Jul 16 15:02:51 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Thu Jul 23 12:34:45 2026 +0000"
      },
      "message": "[ASTERIXDB-3183][COMP] Added support for Async Requests and configurable cache size(queryPlanCache)\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDescription:\n  - Support async/deferred query requests.\n  - Report cache usage via a top-level cachedPlan response field.\n  - Make plan cache size configurable via query.plan.cache.capacity\n    (default 1000, 0 disables), resizable at runtime.\n\nEx-ref: MB-72415\nChange-Id: Ic4f4cb1c3c7b041db6b052cdc8c71a749890a294\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21436\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n"
    },
    {
      "commit": "ca8bc8266c9496aa498cef4b68771c2b1c4d1418",
      "tree": "bad93a79b255c4d4ae47d06ba17f527483d9f1a2",
      "parents": [
        "b1b18faf07bae918231dbbbd560d73391021f14d"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Mon Jul 20 11:20:13 2026 -0700"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Wed Jul 22 15:52:11 2026 +0000"
      },
      "message": "[ASTERIXDB-3793][EXT] Consume Library digest once\n\nWhen writing to cloud storage, the library digest was being consumed\ntwice. The first call was to the descriptor, so that ended up containing\nthe correct hash of the library. The second, to Metadata, was then\ncalling it on an empty digest.\n\nChange-Id: Id676af0729fe5f61d69a9c5fb46d0323f625def8\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21449\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\n"
    },
    {
      "commit": "522af435b24e5dd7839b1b7d8fe48494916e7f5b",
      "tree": "2e62fbb87f8aa3768d473425e52aa7e26cef77af",
      "parents": [
        "2f438b169a0d070248566838b4abb91385ad122f"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Tue Jul 21 20:30:54 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Wed Jul 22 15:49:46 2026 +0000"
      },
      "message": "[ASTERIXDB-3794][STO] Count meta-record columns in page-zero fit-check\n\n- Column flush sizes the zeroth page-zero segment in the per-tuple fit\n  check (FlushColumnTupleWriter#getSpaceOccupiedByDefaultWriter) from\n  getAbsoluteNumberOfColumns(true) -\u003e columnMetadataWithCurrentTuple,\n  while the flush itself lays the segment out from\n  getAbsoluteNumberOfColumns(false) -\u003e the real columnMetadata.\n\n- For datasets with a meta record the real write path grows columnMetadata\n  with the main record (writeRecord) AND the meta record (writeMeta in\n  FlushColumnTupleWithMetaWriter), but the fit-check look-ahead\n  (updateColumnMetadataForCurrentTuple) walked only the main record, so\n  meta-record columns were never counted by the fit check.\n\n- When the meta record contributes many columns, the fit check under-sizes\n  page zero by (meta columns) * (COLUMN_OFFSET_SIZE + FILTER_SIZE): the\n  leaf over-accumulates and the flush overruns the zeroth page-zero\n  segment with a BufferOverflowException, failing the flush.\n\n- Fix: give FlushColumnTupleWithMetaWriter a NoWrite meta transformer and\n  override updateColumnMetadataForCurrentTuple to also walk the meta\n  record into columnMetadataWithCurrentTuple, mirroring writeRecord +\n  writeMeta. getAbsoluteNumberOfColumns(true) now counts main + meta\n  columns, matching the flush layout, so the leaf splits at the correct\n  size. The meta walk is skipped for antimatter and non-LSM (load)\n  tuples, matching writeMeta\u0027s contract.\n\n- Merge is unaffected: MergeColumnTupleWriter#getAbsoluteNumberOfColumns\n  returns the real metadata for both branches, so its estimate and layout\n  already agree.\n\n- Test: FlushMetaColumnCountTest drives FlushColumnTupleWithMetaWriter and\n  asserts getAbsoluteNumberOfColumns(true) \u003d\u003d getAbsoluteNumberOfColumns(false);\n  fails before the fix (main-only count), passes after.\n\nExt-ref: MB-72946\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I070f4f46af7ac94530371d23642342cec465f448\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21450\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\n"
    },
    {
      "commit": "b1b18faf07bae918231dbbbd560d73391021f14d",
      "tree": "00de5fab33a301821bd12b5b8e5ed5c2b95c5548",
      "parents": [
        "8554cb33add689ec1fefb7ad65649ea616e4487c"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Wed Jul 15 14:29:00 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Tue Jul 21 16:42:11 2026 +0000"
      },
      "message": "[ASTERIXDB-3702][STO] Drop redundant leaf-page-id array in sample cursors\n\nThe batched random draws already pack (pageId \u003c\u003c 32 | drawIndex)\ninto the sorted long[] key, so the parallel drawPageIds[] int array\nwas redundant: the page id is just the high 32 bits of the sort\nkey. Derive it there and remove the array from both the row and\ncolumn sample cursors, saving a leafDrawBatchSize-int allocation\nand one scattered gather per draw.\n\nBehavior is unchanged - the resolved (pageId, drawIndex) is\nidentical.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: Id676af0729fe5f61d69a935ff46d0323f635dff9\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21432\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\n"
    },
    {
      "commit": "8554cb33add689ec1fefb7ad65649ea616e4487c",
      "tree": "06463bc694892d8d229aaa44c4ff011801b94b10",
      "parents": [
        "3d6992d0e7540cc57cb179d0f9858acac31f3ca8"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Thu Jul 09 17:20:39 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Tue Jul 21 11:32:28 2026 +0000"
      },
      "message": "[ASTERIXDB-3183][COMP] Added support for parameterized queries (QueryPlanCache)\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDescription: Parameterized queries can be utilized now when the value of the parameters are fixed.\n\nEx-ref: MB-72415\nChange-Id: I126d55e391b7ba9c8212299a9645143ae0b70a75\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21412\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\n"
    },
    {
      "commit": "3d6992d0e7540cc57cb179d0f9858acac31f3ca8",
      "tree": "a911f148ef304c660435213a929255ef103324c4",
      "parents": [
        "aea72a272769e8db49a3c53beba2bb6d240865e3"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 13 12:50:07 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 20 15:22:02 2026 +0000"
      },
      "message": "[ASTERIXDB-3702][STO] Encode LSM sampling leaf page ids as bitmap+select\n\nThe B-tree sample cursor enumerated every leaf page id into an int[]\n(4 * N_leaf bytes; ~132 MB for a 33M-leaf row component, and it scales\nper partition per sample job). Replace that int[] with a succinct\nBitmapLeafIds (bitmap over [0, maxPageId] + a sampled select index):\n~2 bits/elem, ~15x less memory for dense row components.\n\nThe interior-only enumeration DFS is unchanged (it still yields only\ngenuine leaf-header ids); it now streams them into the bitmap via an\nIntConsumer sink instead of a list. size()/get(i) give the same random\naccess the sampler needs, and get(i) equals the old leafPageIds[i]\nexactly (leaves enumerate in ascending key/DFS order), so samples,\nstats, and plans are unchanged - only memory drops.\n\nColumnar sampling keeps its (small) int[]. get(i) runs on the\nANALYZE path only and is dwarfed by the per-draw page pin, so there is\nno query-path perf impact.\n\nVerified: BitmapLeafIdsTest (get(i) \u003d\u003d sorted[i] across densities/edge\ncases); LSMSampleFragmentationContaminationTest and\nLSMSampleDeleteVisibilityTest pass on the encoding; the full analyzed\nsuite is baseline-neutral vs enumerate.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nExt-ref: MB-68399\nChange-Id: Ic8fb85f6c89a47ec0fd0de79c1a56e7d828002e5\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21429\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "aea72a272769e8db49a3c53beba2bb6d240865e3",
      "tree": "5a9946c58495914516d2cfdd864144e94e474655",
      "parents": [
        "a8debb62d6bd3acb5f87ed7430311c67193bd0fc"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 20 11:43:20 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 20 12:24:55 2026 +0000"
      },
      "message": "[ASTERIXDB-3702][RT][STO] Address LSM Sampling review comments\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\nFollow-up to the merged LSM Sampling change (20959) re-applying\nreview comments not present in the merged patchset:\n- Rename IComponentSampler -\u003e ISketchSampler (BTree should not be\n  aware of LSM components).\n- Remove IBTreeInteriorFrame.getRightLeafOffset (duplicate of the\n  existing getRightmostChildPageId); switch callers over.\n- Drop BTreeCursorInitialState.rootPageId; carry the root through the\n  existing pageId slot.\n- Rename ILSMIndexBatchPointCursor.doHasNextWithPredicate -\u003e\n  hasNextWithPredicate; add javadocs.\n- Remove redundant LSMBTree cast in LSMColumnBTreeLocalResource.\n- Remove unused DiskBTree.getRandomLeafPage, the duplicate\n  OperatorStats.get{Cold,CloudReadPage}Counter, and\n  LSMBTreeLocalResource.getOrDefaultInt.\n- Make DiskBTreeSampleCursor.rootPageId a local variable.\n- Split computeDiskComponentSampleProportionality into logical units;\n  demote the under-allocation warn to info.\n- Gate DiskBTreeSampleCursor sampling timing/stats on TRACE (was\n  DEBUG, on by default) to keep it off the hot path.\n\nExt-ref: MB-68399\nChange-Id: I25793077fe56b868ac80ea5710a5519fa827a951\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21447\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\n"
    },
    {
      "commit": "a8debb62d6bd3acb5f87ed7430311c67193bd0fc",
      "tree": "1527a37cb5d63c700d30184b8be54fdc9c7f536a",
      "parents": [
        "13cc038a410dc2c05a0b4cce4810e9454da98948"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Sun Jul 19 20:42:05 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Sun Jul 19 18:56:35 2026 +0000"
      },
      "message": "[ASTERIXDB-3702][RT][STO] LSM Sampling\n\n- user model changes: no\n- storage format changes: no\n- interface changes: yes\n\nDetails:\nAddressed comments related to\n1. imports\n2. corrected masking of test in only_sqlpp.xml\n\nExt-ref: MB-68399\nChange-Id: Idbe6b1243ed4c015e05d162e3fc8b78d93cb6c69\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21446\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "13cc038a410dc2c05a0b4cce4810e9454da98948",
      "tree": "2bff4e2bc5b1cbdd4c3e0e6f2ce648df943eaa5d",
      "parents": [
        "62a6aa125fe51b6ff13c85f778da4c31102f0f6b"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Fri Jul 17 11:38:14 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Sun Jul 19 14:39:41 2026 +0000"
      },
      "message": "[ASTERIXDB-3702][RT][STO] LSM Sampling\n\n- user model changes: yes\n- storage format changes: yes\n- interface changes: yes\n\nDetails:\nIntroduced sample cursor to collect random\nobjects from the leaf, in an attempt to improve\nthe sampling performance by ditching the full scan.\n\nExt-ref: MB-68399\nChange-Id: If5c5b7eac5199b85fc40b722c87ae0bbb73eecbd\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20959\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "62a6aa125fe51b6ff13c85f778da4c31102f0f6b",
      "tree": "41eb626dc41fe4f86c75f38c1b7ea902437373e3",
      "parents": [
        "e2f1063c8a8b073b23b376b54dc32b0ffee4183c"
      ],
      "author": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Wed Jun 17 21:25:47 2026 +0300"
      },
      "committer": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Sun Jul 19 04:08:41 2026 +0000"
      },
      "message": "[NO ISSUE][EXT]: fix parsing nulls and handling time micros for avro\n\nDetails:\n- Properly report Avro NULL value as null rather than missing and\n  omitting the whole field.\n- Stop applying the timezone offset to time-of-day and local\n  timestamp values, which have no associated timezone; only\n  UTC timestamp-millis/micros values get the offset.\n\nExt-ref: MB-72320, MB-72680\nChange-Id: I872be48898e01e7eefe4f1e2c85e72f1ca0c9c2e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21389\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "e2f1063c8a8b073b23b376b54dc32b0ffee4183c",
      "tree": "547bcd4c98bd39815874c307934b05de012a3a02",
      "parents": [
        "4c770e660fc811a91a94dde7143a9b492673bbaf",
        "840950d58ec48e19fcab0de7973d2a3090d0941b"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 20:30:07 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 20:30:07 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/morpheus\u0027 into \u0027master\u0027\n\n * [ASTERIXDB-3718][COMP][BP] Fixing the result of object_put function (MB-72828)\n * [ASTERIXDB-3765][COMP][BP] Fix OBJECT_PUT/ADD() type computers (MB-72828)\n * [NO ISSUE][MISC] +\u003d Sync AiProvenance from master (MB-72913)\n\nExt-ref: MB-72913\nChange-Id: I8c2cd6e028d8d3cb5346ef3afe337f65cfefe0dc\n"
    },
    {
      "commit": "840950d58ec48e19fcab0de7973d2a3090d0941b",
      "tree": "976075015125a905fda01542c7c0f6617654464e",
      "parents": [
        "4d5b8a7903974257e0d3c69ccabeccd4025af61e",
        "bb6fdf65fc8455a3ebd4f65968452890254f6c59"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 18:45:49 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 18:46:23 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [ASTERIXDB-3718][COMP][BP] Fixing the result of object_put function (MB-72828)\n * [ASTERIXDB-3765][COMP][BP] Fix OBJECT_PUT/ADD() type computers (MB-72828)\n * [NO ISSUE][MISC] +\u003d Sync AiProvenance from master (MB-72913)\n\nExt-ref: MB-72828,MB-72913\nChange-Id: Ia92f13469c11e0f6fcc473125f54675489367697\n"
    },
    {
      "commit": "bb6fdf65fc8455a3ebd4f65968452890254f6c59",
      "tree": "92393506e7c77d9faa56b6907e095b78dfb003da",
      "parents": [
        "9d438bf87083753c85a903386520feba9f78382a"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 17:15:05 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 17 22:44:13 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] +\u003d Sync AiProvenance from master\n\n - add CLAUDE_OPUS_4_8 and CLAUDE_SONNET_5 agents\n - rename tool CLAUDE_UI -\u003e CLAUDE_CODE_UI, ANTHROPIC_CLI -\u003e\n   CLAUDE_CODE_CLI\n - allow @AiProvenance on local variables (add\n   ElementType.LOCAL_VARIABLE)\n\nExt-ref: MB-72913\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I8435fcd496f6702c2fdd929fa2c71392308d939f\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21440\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\n"
    },
    {
      "commit": "4c770e660fc811a91a94dde7143a9b492673bbaf",
      "tree": "7d6c548d6fe3a614116ae13777a0bef5cad1e2be",
      "parents": [
        "615ef28c7a07f81c67dc63ca98b67940c8e6adde",
        "92518abe70a594dd9957ce79f36f218c1a436778"
      ],
      "author": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Fri Jul 17 22:39:54 2026 +0000"
      },
      "committer": {
        "name": "Apache AsterixDB Gerrit",
        "email": "dev@asterixdb.apache.org",
        "time": "Fri Jul 17 22:39:54 2026 +0000"
      },
      "message": "Merge \"Merge branch \u0027gerrit/lumina\u0027 into \u0027master\u0027\""
    },
    {
      "commit": "9d438bf87083753c85a903386520feba9f78382a",
      "tree": "b121ae94bb72d8f78c9035dab33b477beac11972",
      "parents": [
        "2171107b05fdcaf612c05e8239eaa6df98e55a8b"
      ],
      "author": {
        "name": "Ali Alsuliman",
        "email": "ali.al.solaiman@gmail.com",
        "time": "Thu Apr 30 03:04:04 2026 +0300"
      },
      "committer": {
        "name": "Shahrzad Shirazi",
        "email": "Shahrzad.shirazi@couchbase.com",
        "time": "Fri Jul 17 16:25:33 2026 +0000"
      },
      "message": "[ASTERIXDB-3765][COMP][BP] Fix OBJECT_PUT/ADD() type computers\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nFields with type ANY should not be part of the schema of\nthe record type computed by OBJECT_PUT/ADD().\nDon\u0027t add fields with type ANY to the record type schema.\nInstead the record type should be made open to accept such\nfields in the open part of the record.\n\nExt-ref: MB-72828\n\nChange-Id: Ieb3f6ed85c107ff849e34850a15505ea61fbb4eb\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21173\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n(cherry picked from commit 024c559ac9e6317f83c3430d20e395d917a60724)\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21428\n"
    },
    {
      "commit": "2171107b05fdcaf612c05e8239eaa6df98e55a8b",
      "tree": "5c2b18a008d0960489e9b7047a7504734b4e883b",
      "parents": [
        "4320433a056cc6cd7a6d61a5ccc1e885a9106df9"
      ],
      "author": {
        "name": "Shahrzad Shirazi",
        "email": "Shahrzad.shirazi@couchbase.com",
        "time": "Fri Mar 13 11:10:29 2026 -0700"
      },
      "committer": {
        "name": "Shahrzad Shirazi",
        "email": "Shahrzad.shirazi@couchbase.com",
        "time": "Fri Jul 17 16:20:36 2026 +0000"
      },
      "message": "[ASTERIXDB-3718][COMP][BP] Fixing the result of object_put function\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nExt-ref: MB-72828\n\n\nChange-Id: I434142a9b9cd2d1fc941b4e4f4503f8403a734ec\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21005\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n(cherry picked from commit bbf35e83939207dd77ed3f00b73e69fccd02f91a)\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21427\n"
    },
    {
      "commit": "615ef28c7a07f81c67dc63ca98b67940c8e6adde",
      "tree": "3b01a6b6f015a2c19ecb954abd777070eb30610a",
      "parents": [
        "88ac0a9983dde9a474e705716b78ae1533febad1"
      ],
      "author": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Mon Jun 29 16:32:33 2026 +0300"
      },
      "committer": {
        "name": "Hussain Towaileb",
        "email": "Hussain.Towaileb@Couchbase.com",
        "time": "Fri Jul 17 10:37:47 2026 +0000"
      },
      "message": "[ASTERIXDB-3790][EXT]: Add support for Iceberg Variant type\n\nDetails:\n- Added support for Iceberg variant type\n- Added test cases\n- Added base tests for shredded vs serialized reading\n\nExt-ref: MB-72434\nChange-Id: Iaf8cbd6657cabcf15008501b53892a1432d873eb\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21391\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "92518abe70a594dd9957ce79f36f218c1a436778",
      "tree": "09fad6d2ffebe61f256621cc46892305ae57c5c7",
      "parents": [
        "88ac0a9983dde9a474e705716b78ae1533febad1",
        "2f438b169a0d070248566838b4abb91385ad122f"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 16 19:19:41 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 16 22:03:02 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/lumina\u0027 into \u0027master\u0027\n\n * [ASTERIXDB-3788][STO] flush .dic LAF pages in ascending page-id order (MB-72604)\n * [ASTERIXDB-3791][CLOUD] use legacy Content-MD5 on DeleteObjects in when_required (MB-72785)\n * [ASTERIXDB-3791][TEST] add S3 checksum-behavior wire-contract test (MB-72720)\n * [NO ISSUE][MISC] Add CLAUDE_OPUS_4_8 agent and CLAUDE_CODE_UI tool to AiProvenance (MB-72853)\n * [ASTERIXDB-3787][STO] Fix infinite loop reading array-nested union-typed columns (MB-72388)\n\nChange-Id: I86315251a52cd4aebc027cefc99f5b0a48c26de6\n"
    },
    {
      "commit": "2f438b169a0d070248566838b4abb91385ad122f",
      "tree": "990bf708a846c9eb63a0faec54c604ff940b69d3",
      "parents": [
        "9d3bd827bd6eaf61074a6abc81c655a41059b840"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Thu Jul 02 16:18:11 2026 +0530"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "mblow@apache.org",
        "time": "Thu Jul 16 17:54:33 2026 +0000"
      },
      "message": "[ASTERIXDB-3787][STO] Fix infinite loop reading array-nested union-typed columns\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nPathExtractorVisitor.getReversedDelimiters() reversed the shared\ndelimiters field in place via Collections.reverse instead of returning\na reversed copy. The reader requires delimiter levels in descending\norder (largest nesting level first).\n\nFor a union-typed leaf, getOrCreateReaders loops over the union\u0027s flat\nchildren, calling createReader -\u003e getReversedDelimiters once per child.\nEach call re-reversed the same field, so odd-numbered children got the\ncorrect descending order and even-numbered children got it flipped back\nto ascending. With a single delimiter the flip is a no-op, so the bug\nonly surfaced when the leaf sat under two or more nested arrays.\n\nAn ascending delimiter array corrupts\nRepeatedPrimitiveColumnValuesReader: levelToDelimiterMap is built wrong\nand setDelimiterIndex uses the wrong threshold, so\nisDelimiter()/getDelimiterIndex() never reach the value\nEndOfRepeatedGroupAssembler waits for. The group-end condition never\nfires, the assembler keeps jumping back to the group\u0027s first value, and\nthe query spins forever on the same tuple.\n\n(cherry picked from commit 79bdb52312)\n\nExt-ref: MB-72388\nChange-Id: Ib4c961272a6eea730efeb7d75c95cd9ea72e9aaa\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21437\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\n"
    },
    {
      "commit": "88ac0a9983dde9a474e705716b78ae1533febad1",
      "tree": "c5d28c0f50fd93ab0961c2daa9f7711f38f1acaf",
      "parents": [
        "2dbf57060dc84bef1c00e0132c1617ffee72992a"
      ],
      "author": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Tue Feb 10 11:20:40 2026 -0800"
      },
      "committer": {
        "name": "Ian Maxon",
        "email": "imaxon@apache.org",
        "time": "Thu Jul 16 15:08:17 2026 +0000"
      },
      "message": "[ASTERIXDB-3704][RT][EXT] Direct batched UDFs\n\n- user model changes: yes\n- storage format changes: yes\n- interface changes: yes\n\nDetails:\nAdd an optional WITH parameter to CREATE FUNCTION, \"batched\",\nwhich is a default false boolean. When true, feed the UDF an\nentire buffer\u0027s worth of arguments as an array, rather than\nhaving the entrypoint wrapper call the function for each argument\nin the buffer. This function should then return an array of\nresults. Each element in the array will be treated as a result\nto its corresponding argument based on position.\n\nChange-Id: Icf52985cd22e1d8ae93c39d1fac187ce23d316b0\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/20883\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "9d3bd827bd6eaf61074a6abc81c655a41059b840",
      "tree": "499ba0282739c80528a558c01e010b4c152451e2",
      "parents": [
        "0906e7de144cf61107afc0b259d88c455fd08fc7"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Jul 15 17:58:50 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 16 14:23:36 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Add CLAUDE_OPUS_4_8 agent and CLAUDE_CODE_UI tool to AiProvenance\n\nEnables @AiProvenance annotations authored by Claude Opus 4.8 via Claude\nCode, used by the MB-72853 regression test in cbas-core. Also adds a\nCLAUDE.md with AI-agent guidance for this tree.\n\nExt-ref: MB-72853\nChange-Id: I33960d39d3c70033eb101b8664ce9920a245984a\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21434\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "2dbf57060dc84bef1c00e0132c1617ffee72992a",
      "tree": "3358762eda3075ea16abd40c048aae60e30d9ec1",
      "parents": [
        "8c77634701c8716a50248c8c7e07dbefb0c98d66"
      ],
      "author": {
        "name": "preetham0202",
        "email": "preetham.poluparthi@couchbase.com",
        "time": "Fri Jun 26 12:21:54 2026 +0530"
      },
      "committer": {
        "name": "Preetham Poluparthi",
        "email": "preetham.poluparthi@couchbase.com",
        "time": "Wed Jul 15 08:34:16 2026 +0000"
      },
      "message": "[ASTERIXDB-3789][RT] Optimize FieldAccessByNameEvalFactory for constant field names\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nWhen fldNameEvalFactory is a ConstantEvalFactory (the common case for\nliteral field access, e.g. r.foo), the UTF-8 length, meta-length, and\nhash of the field name were recomputed on every tuple evaluation.\n\nExt-ref: MB-72643\n\nChange-Id: I4d6cd6e14c1e1b917bb32a921f8776abfd9642e0\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21369\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "8c77634701c8716a50248c8c7e07dbefb0c98d66",
      "tree": "b8bfed9830245944202f6d725e177966589c92b4",
      "parents": [
        "8f28bb1ccb0ff53af7f9396d31e702b91f9ba67a"
      ],
      "author": {
        "name": "rithwik.koul",
        "email": "rithwik.koul@couchbase.com",
        "time": "Mon Jun 15 14:16:36 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Mon Jul 13 17:51:51 2026 +0000"
      },
      "message": "[ASTERIXDB-3183][COMP] Add query plan cache\n\n- user model changes: yes\n- storage format changes: no\n- interface changes: yes\n\nDescription:\nThe query plan cache reduces compile times by skipping the optimization stages of repeated queries.\n\nEx-ref: MB-72415\nCo-authored-by: Sushrut Borkar \u003csushrutborkar@gmail.com\u003e\nCo-authored-by: Glenn Galvizo \u003cggalvizo@apache.org\u003e\nChange-Id: I116e5fa9d16e5c4a5cc6dfbdf8db230221086a9d\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21328\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Rithwik Koul \u003crithwik.koul@couchbase.com\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "8f28bb1ccb0ff53af7f9396d31e702b91f9ba67a",
      "tree": "25bdb47a1f873e40d869737625cfb17670e04972",
      "parents": [
        "4b2a2d44c113508ccab85cbaf349e7206065c687",
        "007ccee325be55b5313afb047ea48457413e9c14"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Jul 13 08:34:07 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Jul 13 08:34:07 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/totoro\u0027 into \u0027master\u0027\n\n * [NO ISSUE][MISC] Update Jackson to 2.22 (MB-72699)\n * [NO ISSUE][MISC] Update Netty to 4.1.136.Final (MB-72787)\n\nChange-Id: Ifba6062828dc06e4e50ee41571e010d856dbc1e1\n"
    },
    {
      "commit": "0906e7de144cf61107afc0b259d88c455fd08fc7",
      "tree": "ba7c74fc4507f93c70b6ee852d613909b7690873",
      "parents": [
        "c7ffbfa6c965807a10bf70b641ec24e89b07f855"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Thu Jul 09 22:06:33 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Fri Jul 10 16:23:09 2026 +0000"
      },
      "message": "[ASTERIXDB-3791][TEST] add S3 checksum-behavior wire-contract test\n\nGuards the when_required S3 checksum behavior against silent AWS SDK\ndefault changes (as in 2.30.0). Runs the real S3CloudClient.buildClient\npath against a live Adobe S3Mock container fronted by an in-process\ncapturing reverse proxy, asserting golden snapshots of the integrity/\ntransfer headers on the wire while the request round-trips to the store:\n- uploads stay a plain PUT (no aws-chunked/streaming content-sha256) and\n  the body is stored intact;\n- the bulk DeleteObjects carries the legacy Content-MD5 and succeeds.\n\nSkipped when Docker is unavailable.\n\nExt-ref: MB-72720\nChange-Id: Id195af50d54726fd856f3e2e056263b86b0adb99\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21415\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Michael Blow \u003cmblow@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "007ccee325be55b5313afb047ea48457413e9c14",
      "tree": "9d74062413f0e0004c851254f4d392b981fa3c5f",
      "parents": [
        "75fe34084085d57942185b4c1beb2204f82b570a",
        "4d5b8a7903974257e0d3c69ccabeccd4025af61e"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 10 08:20:54 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 10 08:20:54 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/morpheus\u0027 into \u0027gerrit/totoro\u0027\n\n * [NO ISSUE][MISC] Update Netty to 4.1.136.Final (MB-72787)\n\nExt-ref: MB-72787\nChange-Id: Iac2797c83aa939518814bf9c7eb9c584b1e96f1a\n"
    },
    {
      "commit": "c7ffbfa6c965807a10bf70b641ec24e89b07f855",
      "tree": "5ce4f5a4ee9d4c6959dbe29a89de215add9141a2",
      "parents": [
        "0be4acd9589b45ed2a2a3530a80ff4bf2b67f13f"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Thu Jul 09 18:28:43 2026 +0530"
      },
      "committer": {
        "name": "Murtadha Hubail",
        "email": "mhubail@apache.org",
        "time": "Fri Jul 10 11:41:25 2026 +0000"
      },
      "message": "[ASTERIXDB-3791][CLOUD] use legacy Content-MD5 on DeleteObjects in when_required\n\nSome S3-compatible stores (e.g. Huawei OBS) reject the AWS flexible-\nchecksum header (x-amz-checksum-crc32c) on the bulk-delete API and\nstill require the legacy Content-MD5 header. Since AWS SDK 2.30 the\ndefault integrity header on required-checksum operations (like\nDeleteObjects) is a flexible x-amz-checksum-* header, so such stores\nfail.\n\nInstall the SDK\u0027s LegacyMd5Plugin (added in 2.31.32) on the S3 client\nin when_required mode. Combined with requestChecksumCalculation\u003d\nWHEN_REQUIRED (already applied via S3Utils.applyChecksumBehavior), it\nmakes operations that require a checksum use the legacy Content-MD5\nheader instead of x-amz-checksum-*, and skips the SDK default\nchecksums on operations that merely support them. Content-MD5 is\naccepted by AWS S3 and S3-compatible stores, so it is the safest\nchoice for the non-AWS path. The hard-coded CRC32C request checksum on\nDeleteObjects is dropped.\n\nUses the AWS-supported plugin rather than a hand-rolled\nExecutionInterceptor; the SDK handles which operations require a\nchecksum, multipart, and signing.\n\nExt-ref: MB-72785\nChange-Id: I880d9e5049c504aab78db994cace39726f89f3bf\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21413\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\n"
    },
    {
      "commit": "4b2a2d44c113508ccab85cbaf349e7206065c687",
      "tree": "857f97698c421290f90d2dec8543373bded2548c",
      "parents": [
        "861e55506d393f1de4ec86b905035ba2a5c91b22"
      ],
      "author": {
        "name": "Janhavi Tripurwar",
        "email": "janhavi.tripurwar@couchbase.com",
        "time": "Thu Jul 09 20:39:42 2026 +0530"
      },
      "committer": {
        "name": "Janhavi Tripurwar",
        "email": "janhavi.tripurwar@couchbase.com",
        "time": "Fri Jul 10 10:28:11 2026 +0000"
      },
      "message": "[ASTERIXDB-3784]: Add test to update a typed view with untyped view\n\nExt-ref: MB-72465\n\nChange-Id: I00d6077c8cbdb34e32200d3190905c9347148f82\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21414\nReviewed-by: Janhavi Tripurwar \u003cjanhavitripurwar@apache.org\u003e\nReviewed-by: Ali Alsuliman \u003cali.al.solaiman@gmail.com\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "4d5b8a7903974257e0d3c69ccabeccd4025af61e",
      "tree": "9d74062413f0e0004c851254f4d392b981fa3c5f",
      "parents": [
        "c6d0215da13c2ec67b37b20e0375c405db66b269",
        "4320433a056cc6cd7a6d61a5ccc1e885a9106df9"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 09 23:48:34 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 09 23:48:34 2026 -0400"
      },
      "message": "Merge branch \u0027gerrit/trinity\u0027 into \u0027gerrit/morpheus\u0027\n\n * [NO ISSUE][MISC] Update Netty to 4.1.136.Final (MB-72787)\n\nExt-ref: MB-72787\nChange-Id: Idcdf003aa4fa2529a6d55c2ca30869df21109df3\n"
    },
    {
      "commit": "4320433a056cc6cd7a6d61a5ccc1e885a9106df9",
      "tree": "d508245da0cd34bf8e21335c60505c70bf372f21",
      "parents": [
        "03113456640efd1e2c82060591ecfed8e6d8b9f8"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Thu Jul 09 12:39:11 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Fri Jul 10 03:03:49 2026 +0000"
      },
      "message": "[NO ISSUE][MISC] Update Netty to 4.1.136.Final\n\n - netty: 4.1.135.Final -\u003e 4.1.136.Final\n     (io.netty) 2026 CVE security release\n\nExt-ref: MB-72787\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: If35673be32cc30b78828ed3ad1313895cb944df3\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21416\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "861e55506d393f1de4ec86b905035ba2a5c91b22",
      "tree": "64bbc4ac47d775699669b8542d2690251fbbaf77",
      "parents": [
        "018bf9cbb000ad07125c76852d8ab3de484db0cc"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Mon Jul 06 19:22:29 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Wed Jul 08 18:38:05 2026 +0000"
      },
      "message": "[NO ISSUE][TEST] Bump Adobe S3Mock to 4.12.4\n\n- user model changes: no\n- storage format changes: no\n- interface changes: no\n\nDetails:\nBump the S3Mock test container from 4.7.0 to 4.12.4 to match the\ns3mock-testcontainers library version (locked at 4.12.4; 5.x requires\ntestcontainers 2.x, incompatible with the kafka/postgresql/azure 1.x\nmodules) and keep all S3Mock-backed tests on a single version. Adobe\nS3Mock \u003c 4.x mishandles aws-chunked PUT uploads (the encoding the AWS SDK\n\u003e\u003d 2.30 emits by default under WHEN_SUPPORTED), dropping all but the\nfirst 128 KiB chunk; 4.x decodes them correctly.\n\next-ref: MB-72720\n\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\n\nChange-Id: Ic709a94f8688f8dc50716a04f96574deb703a983\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21407\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\n"
    },
    {
      "commit": "0be4acd9589b45ed2a2a3530a80ff4bf2b67f13f",
      "tree": "38f16d0a79a37e04e7fe37f5128d2ffb84465f18",
      "parents": [
        "d493307ca157c1f16ddbe1e78cc20b96076a85a5"
      ],
      "author": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Fri Jun 26 23:22:28 2026 +0530"
      },
      "committer": {
        "name": "Ritik Raj",
        "email": "raj.ritik9835@gmail.com",
        "time": "Wed Jul 08 17:59:16 2026 +0000"
      },
      "message": "[ASTERIXDB-3788][STO] flush .dic LAF pages in ascending page-id order\n\nOn cloud-backed deployments the columnar .dic (Look-Aside File) is\nwritten through an append-only cloud writer whose ensurePosition\ninvariant requires pages to arrive in strictly ascending offset\n(page-id) order. LAFWriter did not honor that:\n\n  - writeFullPage() flushed a LAF frame as soon as it filled, i.e. in\n    completion order, not page-id order; and\n  - endWriting() flushed the remaining frames in HashMap iteration\n    order.\n\nDuring a large MERGE the bulkloader writes a leaf\u0027s column pages first\nand its page-zero last, and multi-page column values add extra-page\nentries that straddle LAF-page boundaries. So a higher LAF page could\nfill and flush while a lower one was still incomplete. Harmless on the\nrandom-access local file, but fatal on the append-only cloud copy:\nAbstractCloudIOManager.ensurePosition throws \"Misaligned positions\" and\nthe merge thread halts the JVM.\n\nFix: hold a LAF frame back until every lower-id page has been flushed.\nA nextPageToFlush cursor releases only the contiguous ascending prefix\nof completed frames; endWriting flushes the remainder in ascending\npage-id order. The local path is random-access and unaffected; only the\nappend-only cloud writer needs the ordering guarantee, and\nensurePosition stays intact as a corruption guard.\n\nAdds a dedicated regression test, CloudStorageMergeTest, that runs only\ncloud_storage/dic-merge-misalign: a COLUMN dataset with incompressible\ncolumns inserted in batches, then COMPACT, forces a merged component\nwhose .dic spans multiple LAF pages. Without this change it halts the\nJVM during COMPACT (mock S3, append-only cloud writer); with it the\nmerge completes and the count is correct.\n\nTo surface the bug with little data, the test uses its own config\n(cc-cloud-storage-merge.conf.ftl: buffercache.pagesize\u003d2KB,\nmemorycomponent.globalbudget\u003d8MB, column.max.tuple.count\u003d200) so a LAF\npage holds few entries and inserts flush into many small components.\nKept as a separate test class + config so these aggressive storage\nknobs do not perturb the shared CloudStorageTest suite.\n\nExt-ref: MB-72604\nCo-Authored-By: Claude Opus 4.8 (1M context) \u003cnoreply@anthropic.com\u003e\nChange-Id: I2a8a83cd1b57d3ceb1d9be381edd6589a0e138b9\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21372\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Ian Maxon \u003cimaxon@apache.org\u003e\nReviewed-by: Murtadha Hubail \u003cmhubail@apache.org\u003e\nReviewed-by: Ritik Raj \u003critik.raj@couchbase.com\u003e\n"
    },
    {
      "commit": "018bf9cbb000ad07125c76852d8ab3de484db0cc",
      "tree": "94ab1907d8334524c839d177bec536e6db6d5218",
      "parents": [
        "5b224b5a44589bff56edf932090bf48985003c4a"
      ],
      "author": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Mon Jul 06 19:28:34 2026 -0400"
      },
      "committer": {
        "name": "Michael Blow",
        "email": "michael.blow@couchbase.com",
        "time": "Wed Jul 08 13:57:06 2026 +0000"
      },
      "message": "[NO ISSUE][TEST] recreateBucket tolerates already-owned bucket\n\nA lost-response SDK retry of createBucket collides with its own\nsuccessful first attempt, raising BucketAlreadyOwnedByYouException in\nMinIOCloudSharedHttpsIT\u0027s resetPlayground teardown. This was observed\nduring MinIO nginx certificate rotation, where the response to the\nfirst attempt can be dropped as nginx reloads.\n\nTreat bucket-already-exists as success in recreateBucket, since the\nmethod\u0027s post-condition (an empty bucket exists) is already satisfied.\n\nExt-ref: MB-68099\nCo-Authored-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\nChange-Id: I0b50cd90d07c472eaa3047d8869b6ffcfd4bde17\nReviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/21408\nIntegration-Tests: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nTested-by: Jenkins \u003cjenkins@fulliautomatix.ics.uci.edu\u003e\nReviewed-by: Hussain Towaileb \u003chussainht@gmail.com\u003e\n"
    }
  ],
  "next": "5b224b5a44589bff56edf932090bf48985003c4a"
}
