Skip to content

Commit ad9b8fc

Browse files
feat(hive): vendor Hive 3.1 metastore + fb303 Thrift IDL (#694)
Vendor the Apache Hive 3.1 standalone-metastore IDL and the fb303 helper IDL it includes into thirdparty/hive_metastore/. These files are the input for the C++ HMS client bindings, generated by a follow-up commit that invokes `thrift --gen cpp` at build time. Provenance: * hive_metastore.thrift - apache/hive @ branch-3.1, standalone-metastore * share/fb303/if/fb303.thrift - apache/thrift @ master, contrib/fb303 Both upstream files retain their Apache 2.0 license headers; only trailing whitespace and final newlines were normalized by the repository's pre-commit hooks. .github/.licenserc.yaml gains thirdparty/** to paths-ignore so the license-eye check skips the vendored tree.
1 parent 3ca8842 commit ad9b8fc

4 files changed

Lines changed: 2407 additions & 0 deletions

File tree

.github/.licenserc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,6 @@ header:
3131
- 'requirements.txt'
3232
- 'src/iceberg/util/murmurhash3_internal.*'
3333
- 'src/iceberg/test/resources/**'
34+
- 'thirdparty/**'
3435

3536
comment: on-failure
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<!--
2+
~ Licensed to the Apache Software Foundation (ASF) under one
3+
~ or more contributor license agreements. See the NOTICE file
4+
~ distributed with this work for additional information
5+
~ regarding copyright ownership. The ASF licenses this file
6+
~ to you under the Apache License, Version 2.0 (the
7+
~ "License"); you may not use this file except in compliance
8+
~ with the License. You may obtain a copy of the License at
9+
~
10+
~ http://www.apache.org/licenses/LICENSE-2.0
11+
~
12+
~ Unless required by applicable law or agreed to in writing,
13+
~ software distributed under the License is distributed on an
14+
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
~ KIND, either express or implied. See the License for the
16+
~ specific language governing permissions and limitations
17+
~ under the License.
18+
-->
19+
20+
# Vendored Hive Metastore Thrift IDL
21+
22+
This directory contains vendored Thrift interface definitions used to generate
23+
the C++ Hive Metastore (HMS) client consumed by the `iceberg_hive` library. The
24+
files are copied verbatim from upstream Apache projects and remain under the
25+
Apache License, Version 2.0 (see `LICENSE` in the repository root). The only
26+
modification is the repository's pre-commit normalization (trailing whitespace
27+
stripped, single final newline); each file retains its original upstream license
28+
header in place.
29+
30+
## Vendored sources
31+
32+
Sources are pinned to immutable upstream tags and commit SHAs so the provenance
33+
is reproducible and future updates are deterministic.
34+
35+
| File | Upstream | Tag | Commit |
36+
| --- | --- | --- | --- |
37+
| `hive_metastore.thrift` | [apache/hive](https://github.com/apache/hive)`standalone-metastore/src/main/thrift/hive_metastore.thrift` | `rel/release-3.1.3` | [`04c1b307d1bbd1ae268ad47dc36ca4f50c6d9cd8`](https://github.com/apache/hive/blob/04c1b307d1bbd1ae268ad47dc36ca4f50c6d9cd8/standalone-metastore/src/main/thrift/hive_metastore.thrift) |
38+
| `share/fb303/if/fb303.thrift` | [apache/thrift](https://github.com/apache/thrift)`contrib/fb303/if/fb303.thrift` | `v0.14.0` | [`8411e189b0af09e5baad34031555870cf692c1ad`](https://github.com/apache/thrift/blob/8411e189b0af09e5baad34031555870cf692c1ad/contrib/fb303/if/fb303.thrift) |
39+
40+
`fb303.thrift` is the Facebook fb303 management service IDL, transitively
41+
included by `hive_metastore.thrift`. It was originally developed at Facebook,
42+
Inc. and contributed to the Apache Software Foundation under the Apache License,
43+
Version 2.0.
44+
45+
## Updating
46+
47+
Keep a single vendored IDL pinned to an immutable Hive release tag or commit.
48+
To update, re-fetch the file at the new upstream ref, refresh the table above
49+
with the new tag and commit SHA, and re-run the pre-commit hooks.

0 commit comments

Comments
 (0)