Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade the Thrift definition #6

Open
okumin opened this issue Feb 8, 2025 · 3 comments
Open

Upgrade the Thrift definition #6

okumin opened this issue Feb 8, 2025 · 3 comments

Comments

@okumin
Copy link

okumin commented Feb 8, 2025

The current definition is based on maybe Hive 3. We have to update it to resolve some compatibility issues.

See also trinodb/trino#24454

@okumin
Copy link
Author

okumin commented Feb 8, 2025

I'm checking the current definition. It looks like our definition is almost based on that of Hive 3.1.3, with some additional APIs. This is the diff between our definition and 3.1.3.

@okumin
Copy link
Author

okumin commented Feb 8, 2025

This is the definition of Hive 4.0.0. I'm checking 3.1.3...4.0.0. I think it is mostly compatible.

This is the definition of Hive 4.0.1. This is the diff. We discontinued the following APIs, which have been deprecated for years. See also HIVE-26537.

  • void create_dataconnector(1:DataConnector connector)
  • void drop_dataconnector(1:string name, 2:bool ifNotExists, 3:bool checkReferences)
  • void alter_dataconnector(1:string name, 2:DataConnector connector)
  • Table get_table(1:string dbname, 2:string tbl_name)
  • list<Table> get_table_objects_by_name(1:string dbname, 2:list<string> tbl_names)

We are using Table get_table(1:string dbname, 2:string tbl_name) in the fallback path.

We are not using (create|drop|alter)_dataconnector and get_table_objects_by_name.

@okumin
Copy link
Author

okumin commented Feb 8, 2025

We have to decide if we should keep the path of Table get_table(1:string dbname, 2:string tbl_name). The HMS API has been deprecated since Hive 2.3.0 because of HIVE-15062. It is also true in the source code of 2.3.0 and the alternative is available in 2.3.0. Hive 2.2.0 has only the deprecated API.

Which should we choose?

  1. Use the definition of 4.0.0 and keep the current support
  2. Use the definition of 4.0.1 and support only 2.3.0 or newer versions
  3. Use the definition of 4.0.1 and add Table get_table(1:string dbname, 2:string tbl_name) for compatibility

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant