Dudu Markovitz created HIVE-16496:
-------------------------------------
Summary: Enhance asterisk expression (as in "select *") with
EXCLUDE clause
Key: HIVE-16496
URL: https://issues.apache.org/jira/browse/HIVE-16496
Project: Hive
Issue Type: Wish
Components: Parser
Reporter: Dudu Markovitz
support the following syntax:
> select * exclude (a,b,e) from t
which for a table t with columns a,b,c,d,e would be equal to:
> select c,d from t
A common use case would be:
> select t1.* exclude (x), t2.* from t1 join t2 on t1.x=t2.x;
This supplies a very clean way to select all columns without getting "Ambiguous
column reference" and without the need to specify all the columns of at least
one of the tables.
Currently, without this enhancement, the query would look something like this:
> select a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,y,z,t2.* from t1 join t2
> on t1.x=t2.x;
An extension to this enhancement would be supporting positional column
notation, e.g.:
> select * exclude ($1,$2,$5) from t -- exclude columns 1, 2 and 5
> select * exclude (-$1,-$2) from t -- exclude last 2 columns
> select * exclude ($1-3) from t -- exclude first 3 columns
> select * exclude (-$1-3) from t -- exclude last 3 columns
A complex example would look like:
> select * exclude ($1-2,x,y,-$1-3) from t
exclude:
- first 2 columns
- x and y
- last 3 columns
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)