Skip to content

feat: Assert that the metastore serves the legacy get_table Thrift methods - #766

Open
lfrancke wants to merge 1 commit into
mainfrom
feat/hive-thrift-compat-assertion
Open

lfrancke wants to merge 1 commit into
mainfrom
feat/hive-thrift-compat-assertion

Conversation

@lfrancke

@lfrancke lfrancke commented Sep 14, 2026

Copy link
Copy Markdown
Member

Depends on stackabletech/docker-images#1636 and stackabletech/docker-images#1637.

I just wanted to put them up so you can see the test used to validate those two.

What this does

  • Asserts in the smoke test that the metastore still answers get_table and get_table_objects_by_name
  • Documents the behaviour
  • Updates the supported versions to 4.2.1 (LTS), 4.2.0, 4.0.0, 3.1.3

@lfrancke
lfrancke force-pushed the feat/hive-thrift-compat-assertion branch from f341596 to a24329e Compare September 14, 2026 12:37
@lfrancke lfrancke self-assigned this Sep 14, 2026
@lfrancke
lfrancke marked this pull request as ready for review September 14, 2026 12:38
@lfrancke lfrancke moved this to Development: Waiting for Review in Stackable Engineering Sep 14, 2026
…thods

Hive 4.0.1 removed get_table and get_table_objects_by_name from the metastore Thrift
interface (HIVE-26537). Clients built against a Hive 2.3 metastore client still call them,
which is what Spark bundles, so Iceberg's HiveCatalog could not talk to a Hive 4.0.1 or
newer metastore. Our images for 4.2.0 restore both methods.

The smoke test now asserts that. Without it the patch could be dropped during a Hive bump
and nobody would notice until it surfaced in somebody's Spark job; with it the test fails
with "Invalid method name: 'get_table'" at the point the image changes. It runs
unconditionally: every version we ship serves both methods, either because it predates the
removal (3.1.3, 4.0.0) or because it carries the patch (4.2.0 and later). 4.0.1, the one
exception, is removed in docker-images.

Also documents the divergence. Our metastore is deliberately more permissive than an
upstream Hive 4 metastore, which matters to anyone planning to move a workload off SDP, so
it gets a usage-guide page rather than a footnote. The supported-versions page previously
told users to fall back to Hive 3.1.3 because of the Iceberg and Trino problems; the Iceberg
half is fixed by the restored methods and the Trino half by Trino 480, so it now says what
is actually true.

The supported versions change with it: 4.2.1 is added and becomes the LTS, 4.2.0 is
deprecated, 4.0.1 is dropped, and 4.0.0 stays deprecated for one more release so that a
platform upgrade and a Hive upgrade need not happen in the same window.

Verified on k3d against an image built from the patches: smoke (Postgres), kerberos-hdfs and
kerberos-s3 all pass, and the new assertion fails as intended against the unpatched image.
@lfrancke
lfrancke force-pushed the feat/hive-thrift-compat-assertion branch from a24329e to eb41bd4 Compare September 14, 2026 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Development: Waiting for Review

Development

Successfully merging this pull request may close these issues.

1 participant