[ 
https://issues.apache.org/jira/browse/HIVE-14159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15464097#comment-15464097
 ] 

Simanchal Das commented on HIVE-14159:
--------------------------------------

Hi [~cwsteinbach] I have attached a fresh copy of patch and some test cases 
failed which is not related to this patch.

I have collected below six failed test info from logs.

1. testCliDriver[acid_bucket_pruning]
2. org.apache.hive.jdbc.TestJdbcWithMiniHS2.testAddJarConstructorUnCaching
3. ERROR [de3b6d53-97c3-462f-81c2-00ff3fb2cf52 main] ql.Driver: FAILED: 
HiveAccessControlException Permission denied: Principal [name=user1, type=USER] 
does not have following privileges for operation DROPTABLE [[OBJECT OWNERSHIP] 
on Object [type=TABLE_OR_VIEW, name=default.src]]
4. 
org.apache.hadoop.hive.ql.security.authorization.plugin.HiveAccessControlException:
 Permission denied: Principal [name=user1, type=USER] does not have following 
privileges for operation DROPTABLE [[OBJECT OWNERSHIP] on Object 
[type=TABLE_OR_VIEW, name=default.src]]
5. vector_join_part_col_char.q
6. explainuser_3.q.out


> sorting of tuple array using multiple field[s]
> ----------------------------------------------
>
>                 Key: HIVE-14159
>                 URL: https://issues.apache.org/jira/browse/HIVE-14159
>             Project: Hive
>          Issue Type: Improvement
>          Components: UDF
>            Reporter: Simanchal Das
>            Assignee: Simanchal Das
>              Labels: patch
>         Attachments: HIVE-14159.1.patch, HIVE-14159.2.patch, 
> HIVE-14159.3.patch, HIVE-14159.4.patch
>
>
> Problem Statement:
> When we are working with complex structure of data like avro.
> Most of the times we are encountering array contains multiple tuples and each 
> tuple have struct schema.
> Suppose here struct schema is like below:
> {noformat}
> {
>       "name": "employee",
>       "type": [{
>               "type": "record",
>               "name": "Employee",
>               "namespace": "com.company.Employee",
>               "fields": [{
>                       "name": "empId",
>                       "type": "int"
>               }, {
>                       "name": "empName",
>                       "type": "string"
>               }, {
>                       "name": "age",
>                       "type": "int"
>               }, {
>                       "name": "salary",
>                       "type": "double"
>               }]
>       }]
> }
> {noformat}
> Then while running our hive query complex array looks like array of employee 
> objects.
> {noformat}
> Example: 
>       //(array<struct<empId,empName,age,salary>>)
>       
> Array[Employee(100,Foo,20,20990),Employee(500,Boo,30,50990),Employee(700,Harry,25,40990),Employee(100,Tom,35,70990)]
> {noformat}
> When we are implementing business use cases day to day life we are 
> encountering problems like sorting a tuple array by specific field[s] like 
> empId,name,salary,etc by ASC or DESC order.
> Proposal:
> I have developed a udf 'sort_array_by' which will sort a tuple array by one 
> or more fields in ASC or DESC order provided by user ,default is ascending 
> order .
> {noformat}
> Example:
>       1.Select 
> sort_array_field(array[struct(100,Foo,20,20990),struct(500,Boo,30,50990),struct(700,Harry,25,40990),struct(100,Tom,35,70990)],"Salary","ASC");
>       output: 
> array[struct(100,Foo,20,20990),struct(700,Harry,25,40990),struct(500,Boo,30,50990),struct(100,Tom,35,70990)]
>       
>       2.Select 
> sort_array_field(array[struct(100,Foo,20,20990),struct(500,Boo,30,80990),struct(500,Boo,30,50990),struct(700,Harry,25,40990),struct(100,Tom,35,70990)],"Name","Salary","ASC");
>       output: 
> array[struct(500,Boo,30,50990),struct(500,Boo,30,80990),struct(100,Foo,20,20990),struct(700,Harry,25,40990),struct(100,Tom,35,70990)]
>       3.Select 
> sort_array_field(array[struct(100,Foo,20,20990),struct(500,Boo,30,50990),struct(700,Harry,25,40990),struct(100,Tom,35,70990)],"Name","Salary","Age,"ASC");
>       output: 
> array[struct(500,Boo,30,50990),struct(500,Boo,30,80990),struct(100,Foo,20,20990),struct(700,Harry,25,40990),struct(100,Tom,35,70990)]
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to