Review Board 1.7.22


HIVE-3166: The Hive JDBC driver should accept hive conf and hive variables via connection URL

Review Request #5507 - Created June 22, 2012 and updated

Prasad Mujumdar
trunk
HIVE-3166
Reviewers
hive
carl, cws
hive-git
Support passing configuration and substitution variable as part of JDBC connection string. 
The new format of the URL is jdbc:hive://<host>:<port>/dbName?hive_conf_list#hive_var_list   , where the optional conf and var lists are semicolon separated <key>=<val> pairs. As before, if the host/port is not specified, it the driver runs an embedded hive.
examples -
jdbc:hive://ubuntu:11000/db2?hive.cli.conf.printheader=true;hive.exec.mode.local.auto.inputbytes.max=9999#stab=salesTable;icol=customerID
jdbc:hive://?hive.cli.conf.printheader=true;hive.exec.mode.local.auto.inputbytes.max=9999#stab=salesTable;icol=customerID

The patch include new routines to parse the URL. The conf values are added to HiveConf when hive is running in embedded mode otherwise they are configured using 'set' statement. The variable substitution is only used in case of embedded mode.
Ran JDBC tests.
Added new test case for the extended URL format.
Review request changed
Updated (June 22, 2012, 8:43 a.m.)
Updates per review comments.