Description
HIVE-10074 added the ability to specify a -Dhive.metastore.uris from the commandline, so as to run the test against a deployed metastore.
However, because of the way HiveConf is written, this results in that parameter always overriding any value specified in the conf passed into it for instantiation, since it accepts System Var Overrides. This results in some tests, notably those that attempt to connect between two metastores (such as TestHCatClient#testPartitionRegistrationWithCustomSchema to fail.
Fixing this in HiveConf is not a good idea, since that behaviour is desired for HiveConf. Fixing this in HCatUtil.getHiveConf doesn't really work either, since that is a utility wrapper on HiveConf, and is supposed to behave similarly. Thus, the fix for this then becomes something to use in all our testcases, where we instantiate Configuration objects. It seems more appropriate to change the parameter we use to specify test parameters then, than to change each config object.
Thus, we should change semantics for running this test against an external metastore by specifying the override in a different parameter name, say test.hive.metastore.uris, instead of hive.metastore.uris, which has a specific meaning.
Attachments
Attachments
Issue Links
- relates to
-
HIVE-10074 Ability to run HCat Client Unit tests in a system test setting
- Closed