[ https://issues.apache.org/jira/browse/HIVE-12703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15127103#comment-15127103 ]
Sergey Shelukhin commented on HIVE-12703: ----------------------------------------- Removing 2.0 from target versions as RC0 has been cut. Please -1 the RC, reinstate the version and make this a blocker if that is not acceptable :) > CLI agnostic HQL import command implementation > ---------------------------------------------- > > Key: HIVE-12703 > URL: https://issues.apache.org/jira/browse/HIVE-12703 > Project: Hive > Issue Type: New Feature > Components: Hive > Affects Versions: 2.0.0 > Reporter: Elliot West > Assignee: Elliot West > Labels: hql > > _As an HQL developer_ > _I'd like a single command to import HQL script files, that works across all > Hive CLIs and shells_ > _So that I can compose larger scripts from smaller components irrespective of > my Hive execution environment._ > h3. Motivation > Current Hive CLIs include commands that allow the user to effectively import > and execute HQL scripts from a file. The {{hive}} CLI provides the {{SOURCE}} > command and {{beeline}} provides the {{!run}} command. This allows HQL > developers to decompose complex HQL processes into multiple HQL scripts > files. These can be individually executed or tested, and in the case of > {{MACROs}}, imported in a manner similar to a functionary library. These > 'source' commands allow HQL developers to compose these smaller modules > purely in the domain of Hive (i.e. no external shell such as {{bash}} is > needed). > However, this seems to be a feature of the individual CLIs and not part of > the core HQL language. Consequently this can lead to the development of Hive > processes that are not portable across different execution contexts, even for > the same version of Hive. > h3. Proposal > The ability to compose and encapsulate logic is a fundamental building block > of any scalable language and therefore I believe that this functionality > should be available in the core HQL language and not just implemented in the > CLIs. I propose that the {{SOURCE}} command be a first class citizen of the > HQL language and is available consistently in all execution contexts. > h3. References > * [{{SOURCE}} implementation in the {{hive}} > CLI.|https://github.com/apache/hive/blob/0ae374a320d1cae523ba2b434800e97692507db8/cli/src/java/org/apache/hadoop/hive/cli/CliDriver.java#L137] > * [{{SOURCE}} > documentation.|https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Cli#LanguageManualCli-HiveInteractiveShellCommands] > * [{{!run}} implementation in > {{beeline}}.|https://github.com/apache/hive/blob/master/beeline/src/java/org/apache/hive/beeline/Commands.java#L1535] -- This message was sent by Atlassian JIRA (v6.3.4#6332)