)]}'
{
  "commit": "d2ba6d0d1493a5f82d05f1f357936063a9446e7b",
  "tree": "b2967219399f26e1aa495f4b10dfc6f9f37ebef4",
  "parents": [
    "2a4a79b37ad30c8b9dc43f05604995bf28ee97ad"
  ],
  "author": {
    "name": "Charles Givre",
    "email": "cgivre@apache.org",
    "time": "Sat Aug 01 23:35:52 2026 -0700"
  },
  "committer": {
    "name": "Charles Givre",
    "email": "cgivre@apache.org",
    "time": "Sat Aug 01 23:43:24 2026 -0700"
  },
  "message": "DRILL-8552: Add Storage Plugin for Apache Accumulo\n\nThis PR introduces a new storage plugin for Apache Accumulo, enabling\nDrill to query Accumulo tables using standard SQL.\n\nFeatures:\n- Full SQL query support for Accumulo tables\n- Dynamic schema discovery (column families as MAPs)\n- Filter pushdown (row key ranges to Accumulo Range scans)\n- Projection pushdown (column family/qualifier selection)\n- Limit pushdown (early scan termination)\n- Sort pushdown (ORDER BY row_key uses natural ordering)\n\nAuthentication modes:\n- PASSWORD: Username/password authentication\n- KERBEROS + SHARED_USER: Service principal for all queries\n- KERBEROS + USER_IMPERSONATION: Delegation tokens for per-user identity\n- USER_TRANSLATION: Per-user Accumulo credentials from CredentialsProvider\n\nKey components:\n- AccumuloStoragePlugin/Config: Plugin configuration and lifecycle\n- AccumuloConnectionManager: Centralized auth and client management\n- AccumuloGroupScan/SubScan: Distributed scan planning\n- AccumuloRecordReader: Data reading and vector population\n- AccumuloPushFilterIntoScan: Filter pushdown optimizer rule\n- AccumuloPushSortIntoScan: Sort pushdown optimizer rule\n- DelegationTokenInfo: Serializable token wrapper for distributed execution\n\nTested with Accumulo 2.1.4 LTS.\n\nCo-Authored-By: Claude Opus 4.5 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d84f7c26850a9d898c9483c8d5e3afa244e72cec",
      "old_mode": 33188,
      "old_path": "contrib/pom.xml",
      "new_id": "81875426b52b60fde9e5b4ab31b9dec29cce27e1",
      "new_mode": 33188,
      "new_path": "contrib/pom.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab602bdb5624d39e20cad11608b675d5d68f269f",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/DESIGN.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5bc261c2d2b1afe678238a264d49592c4817993d",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "09d3417b2adf1a95b8e1f10dd1771a0914111580",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/pom.xml"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "490c8e03488f97c7643cdf534b741fa81c55dc65",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloAuthType.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7de16f491ecc93a6e1a85deabf30eb0e22c995c5",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloCompareFunctionsProcessor.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9ef83e66512e6db29735114cc71692abb3352208",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloConnectionManager.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0b38d5b1fc8661c915e104c6426a7e8fd72c712a",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloFilterBuilder.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "14e2196d019de00ac2a08bede3aecc0958cc8c9c",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloGroupScan.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "90320c54f0eea5c88d00039081780cefcd0acb24",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloPushFilterIntoScan.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d12b16a76173856e2e22f550970beb7c137fbefb",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloPushSortIntoScan.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4fd11af4dee8e89bfc52eed78cf467f13bde2c0f",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloRecordReader.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "944657bcee7df43f48bee2101e555951bbb03d78",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloScanBatchCreator.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "972c18f4750ef2203670967983ae01d28339e381",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloScanSpec.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "71f3780d40d9f4a987d3a963a3cad2d454af49eb",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloSchemaFactory.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "acbf80dc3b42ad9e86889bd1c69551951cae59a2",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloStoragePlugin.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7a838feb838bd9b552f4e41e772757769346a78a",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloStoragePluginConfig.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f95bef0eee6688771efa484aa8dbd02135d37c6f",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloSubScan.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "50f7005044230b13d9872877ce3dfd3a7beb31f9",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/AccumuloTypeConverter.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "48cc2261527ef0cfc22f53279cf49cb4eaf466e9",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/DelegationTokenInfo.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bfde8b6a2b526087759537bc75b455c7dbb93e89",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/DrillAccumuloConstants.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f7d5699588c948f41190a9ec985197fe6d112b32",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/DrillAccumuloTable.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d317c0980a8ca231bae51e09ce77613a22a6b9e3",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/schema/AccumuloColumnType.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d775723eaf520d43cf8063c336ffa0f65cb5946e",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/schema/AccumuloSchemaProvider.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab6b1c238d6386bf4203bfe027a29a3ed2d05e3f",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/schema/ColumnDef.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6b555f7d1960de9d8ad521b2f82ba21c79e7eea",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/schema/MetadataTableSchemaProvider.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a2503b4f867057d6b2b10e2590e00640c7f9c951",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/java/org/apache/drill/exec/store/accumulo/schema/TableSchema.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ec1556289d090384b2ab75b8b5a4e6966c5337f9",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/resources/bootstrap-storage-plugins.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2b005a2e33cce06cefc76cbfc5269a5808db47cb",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/main/resources/drill-module.conf"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c3a4b107824a3333e8d58296d96aaba08ca6ae14",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloBasicQueryTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ec421bf1a4f8c2613ea9553e1767e015fa4852e2",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloFilterBuilderTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5196f8676139ab5f339bc690972151ffa10050f2",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloIntegrationTestsSuite.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f0178f9bd1d0bac0e85dbc82a197debb8e78db5b",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloKerberosConfigTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "faa8815b6dbdd8e1cffaa7f38a8c8042e0835f32",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloLimitPushdownTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3d8c4586e0782fc3911501d445e03223388525a6",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloProjectionPushdownTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "73684680e4499004955b4e5f38cb7c8438f1607d",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloPushdownIntegrationTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "75cf613e529848d726f755325f8df5a6d8858a4a",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloScanSpecTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1124d1609fd37e5a9b81ad9c3f9ebfd488156d94",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloSortPushdownTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e7055e18523926e8c0b286c6992a522282cf772",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloStoragePluginConfigTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "454bdaedae25294eb9677ae74fedaf317e7dbe4a",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloTestUtils.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "738f1b70b1f4b275a07fc3e97bdd85f974c56983",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloTestsSuite.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f1f3d34d9afae8dadc565f957f696ec5590abb1",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/AccumuloTypeConverterTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "dedfb5dbf83b6f0eeb8b6292cd5e0e5ddebf5643",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/BaseAccumuloTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a5323ccde00d343709479671b65314f3448d779e",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/DelegationTokenInfoTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f98538b00e9d1949728a3efd35a08b6676c9f066",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/DrillAccumuloConstantsTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1118e587ffac2d8f09f972716cae0cc28c467eec",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/schema/AccumuloColumnTypeTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f6c146128ac7ebe84a6666d6daaba37f0a2b0204",
      "new_mode": 33188,
      "new_path": "contrib/storage-accumulo/src/test/java/org/apache/drill/exec/store/accumulo/schema/TableSchemaTest.java"
    },
    {
      "type": "modify",
      "old_id": "10e27292638130dabe44ed2bdbe03af53f9fb29b",
      "old_mode": 33188,
      "old_path": "distribution/pom.xml",
      "new_id": "f16424432bdc2314e99276ca9d9e827213f116f2",
      "new_mode": 33188,
      "new_path": "distribution/pom.xml"
    },
    {
      "type": "modify",
      "old_id": "71974cdd1273228f3e0b87be45fa8220db31b62e",
      "old_mode": 33188,
      "old_path": "distribution/src/assemble/component.xml",
      "new_id": "c74dbad934daf038412cdcd78cb167599be9028b",
      "new_mode": 33188,
      "new_path": "distribution/src/assemble/component.xml"
    }
  ]
}
