[ https://issues.apache.org/jira/browse/HIVE-14374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15401952#comment-15401952 ]
Peter Vary commented on HIVE-14374: ----------------------------------- I was trying to check the following configuration options but I think they were never intended to work as a command line parameter. --addlocaldriverjar=DRIVERJARNAME Add driver jar file in the beeline client side --addlocaldrivername=DRIVERNAME Add drivier name needs to be supported in the beeline client side The following does not work: {code} $ ./beeline --addlocaldriverjar=pgsql.jar {code} I think these are commands intended to use in an already running client, like this: {code} $ ./beeline 0: jdbc:hive2://localhost:10000> !addlocaldriverjar plqsl.jar {code} If so, then I think it should be removed from the BeeLine.properties file. Am i right [~Ferd] Thanks, Peter > BeeLine argument, and configuration handling cleanup > ---------------------------------------------------- > > Key: HIVE-14374 > URL: https://issues.apache.org/jira/browse/HIVE-14374 > Project: Hive > Issue Type: Improvement > Components: Beeline > Affects Versions: 2.2.0 > Reporter: Peter Vary > Assignee: Peter Vary > > BeeLine uses reflection, to set the BeeLineOpts attributes when parsing > command line arguments, and when loading the configuration file. > This means, that creating a setXXX, getXXX method in BeeLineOpts is a > potential risk of exposing an attribute for the user unintentionally. There > is a possibility to exclude an attribute from saving the value in the > configuration file with the Ignore annotation. This does not restrict the > loading or command line setting of these parameters which means there are > many undocumented "features" as-is, like setting the lastConnectedUrl, > allowMultilineCommand, maxHeight, trimScripts, etc. from command line. > This part of the code needs a little cleanup. > I think we should make this exposure more explicit, and be able to > differentiate the configurable options depending on the source (command line, > and configuration file), so I propose to create a mechanism to tell > explicitly which BeeLineOpts attributes are settable by command line, and > configuration file, and every other attribute should be inaccessible by the > user of the beeline cli. > One possible solution could be two annotations like these: > - CommandLineOption - there could be a mandatory text parameter here, so the > developer had to provide the help text for it which could be displayed to the > user > - ConfigurationFileOption - no text is required here > Something like this: > - This attribute could be provided by command line, and from a configuration > file too: > {noformat} > @CommandLineOption("automatically save preferences") > @ConfigurationFileOption > public void setAutosave(boolean autosave) { > this.autosave = autosave; > } > public void getAutosave() { > return this.autosave; > } > {noformat} > - This attribute could be set through the configuration only > {noformat} > @ConfigurationFileOption > public void setLastConnectedUrl(String lastConnectedUrl) { > this.lastConnectedUrl = lastConnectedUrl; > } > > public String getLastConnectedUrl() > { > return lastConnectedUrl; > } > {noformat} > - Attribute could be set through command line only - I think this is not too > relevant, but possible > {noformat} > @CommandLineOption("specific command line option") > public void setSpecificCommandLineOption(String specificCommandLineOption) { > this.specificCommandLineOption = specificCommandLineOption; > } > > public String getSpecificCommandLineOption() { > return specificCommandLineOption; > } > {noformat} > - Attribute could not be set > {noformat} > public static Env getEnv() { > return env; > } > public static void setEnv(Env envToUse) { > env = envToUse; > } > {noformat} > Accouring to our previous conversations, I think you might be interested in: > [~spena], [~vihangk1], [~aihuaxu], [~ngangam], [~ychena], [~xuefuz] > but anyone is welcome to discuss this. > What do you think about the proposed solution? > Any better ideas, or extensions? > Thanks, > Peter -- This message was sent by Atlassian JIRA (v6.3.4#6332)