You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Szehon Ho (JIRA)" <ji...@apache.org> on 2013/11/12 03:16:18 UTC

[jira] [Updated] (HIVE-5797) select * throws exception for orcfile table after adding new columns

     [ https://issues.apache.org/jira/browse/HIVE-5797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Szehon Ho updated HIVE-5797:
----------------------------

    Description: 
Given the following tables:

select * from two;
+-----+----+
| id  | a  |
+-----+----+
| 1   | a  |
| 2   | b  |
+-----+----+

 select * from three;
+-----+----+----+
| id  | a  | b  |
+-----+----+----+
| 1   | a  | z  |
| 2   | b  | y  |
| 3   | c  | x  |
+-----+----+----+

Execute the following steps:

create table testrc (id bigint, a string) stored as rcfile;
insert into table testrc select * from two;
select * from testrc;  //returns correctly
+-----+----+
| id  | a  |
+-----+----+
| 1   | a  |
| 2   | b  |
+-----+----+

 alter table testrc add columns (b string);
 insert into table testrc select * from three;
select * from testrc;  

throws the following exception:
Thread [pool-4-thread-1] (Suspended (exception ArrayIndexOutOfBoundsException))	
	OrcStruct$OrcStructInspector.getStructFieldData(Object, StructField) line: 210	
	DelegatedStructObjectInspector.getStructFieldData(Object, StructField) line: 85	
	ExprNodeColumnEvaluator._evaluate(Object, int) line: 94	
	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object, int) line: 77	
	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object) line: 65	
	SelectOperator.processOp(Object, int) line: 79	
	SelectOperator(Operator<T>).process(Object, int) line: 488	
	TableScanOperator(Operator<T>).forward(Object, ObjectInspector) line: 826	
	TableScanOperator.processOp(Object, int) line: 91	
	TableScanOperator(Operator<T>).process(Object, int) line: 488	
	FetchOperator.pushRow(InspectableObject) line: 518	
	FetchOperator.pushRow() line: 510	
	FetchTask.fetch(ArrayList<String>) line: 138	
	Driver.getResults(ArrayList<String>) line: 1499	
	SQLOperation.getNextRowSet(FetchOrientation, long) line: 219	
	OperationManager.getOperationNextRowSet(OperationHandle, FetchOrientation, long) line: 171	
	HiveSessionImpl.fetchResults(OperationHandle, FetchOrientation, long) line: 420	
	CLIService.fetchResults(OperationHandle, FetchOrientation, long) line: 318	
	ThriftBinaryCLIService(ThriftCLIService).FetchResults(TFetchResultsReq) line: 386	
	TCLIService$Processor$FetchResults<I>.getResult(I, FetchResults_args) line: 1373	
	TCLIService$Processor$FetchResults<I>.getResult(Object, TBase) line: 1358	
	TCLIService$Processor$FetchResults<I>(ProcessFunction<I,T>).process(int, TProtocol, TProtocol, I) line: 39	
	TCLIService$Processor<I>(TBaseProcessor<I>).process(TProtocol, TProtocol) line: 39	
	TUGIContainingProcessor$1.run() line: 58	
	TUGIContainingProcessor$1.run() line: 55	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]	
	Subject.doAs(Subject, PrivilegedExceptionAction<T>) line: 415	
	UserGroupInformation.doAs(PrivilegedExceptionAction<T>) line: 1485	
	Hadoop23Shims(HadoopShimsSecure).doAs(UserGroupInformation, PrivilegedExceptionAction<T>) line: 471	
	TUGIContainingProcessor.process(TProtocol, TProtocol) line: 55	
	TThreadPoolServer$WorkerProcess.run() line: 206	
	ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145	
	ThreadPoolExecutor$Worker.run() line: 615	
	Thread.run() line: 724	


  was:
Given the following tables:
select * from two;
-------+
id	 a
-------+
1	 a
2	 b
-------+
select * from three;
---------
id	 a	 b
---------
1	 a	 z
2	 b	 y
3	 c	 x
---------
Execute the following steps:
create table testrc (id bigint, a string) stored as rcfile;
insert into table testrc select * from two;
select * from testrc; //returns correctly
-------+
id	 a
-------+
1	 a
2	 b
-------+
alter table testrc add columns (b string);
insert into table testrc select * from three;
select * from testrc; 

throws the following exception:
Thread [pool-4-thread-1] (Suspended (exception ArrayIndexOutOfBoundsException))	
	OrcStruct$OrcStructInspector.getStructFieldData(Object, StructField) line: 210	
	DelegatedStructObjectInspector.getStructFieldData(Object, StructField) line: 85	
	ExprNodeColumnEvaluator._evaluate(Object, int) line: 94	
	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object, int) line: 77	
	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object) line: 65	
	SelectOperator.processOp(Object, int) line: 79	
	SelectOperator(Operator<T>).process(Object, int) line: 488	
	TableScanOperator(Operator<T>).forward(Object, ObjectInspector) line: 826	
	TableScanOperator.processOp(Object, int) line: 91	
	TableScanOperator(Operator<T>).process(Object, int) line: 488	
	FetchOperator.pushRow(InspectableObject) line: 518	
	FetchOperator.pushRow() line: 510	
	FetchTask.fetch(ArrayList<String>) line: 138	
	Driver.getResults(ArrayList<String>) line: 1499	
	SQLOperation.getNextRowSet(FetchOrientation, long) line: 219	
	OperationManager.getOperationNextRowSet(OperationHandle, FetchOrientation, long) line: 171	
	HiveSessionImpl.fetchResults(OperationHandle, FetchOrientation, long) line: 420	
	CLIService.fetchResults(OperationHandle, FetchOrientation, long) line: 318	
	ThriftBinaryCLIService(ThriftCLIService).FetchResults(TFetchResultsReq) line: 386	
	TCLIService$Processor$FetchResults<I>.getResult(I, FetchResults_args) line: 1373	
	TCLIService$Processor$FetchResults<I>.getResult(Object, TBase) line: 1358	
	TCLIService$Processor$FetchResults<I>(ProcessFunction<I,T>).process(int, TProtocol, TProtocol, I) line: 39	
	TCLIService$Processor<I>(TBaseProcessor<I>).process(TProtocol, TProtocol) line: 39	
	TUGIContainingProcessor$1.run() line: 58	
	TUGIContainingProcessor$1.run() line: 55	
	AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]	
	Subject.doAs(Subject, PrivilegedExceptionAction<T>) line: 415	
	UserGroupInformation.doAs(PrivilegedExceptionAction<T>) line: 1485	
	Hadoop23Shims(HadoopShimsSecure).doAs(UserGroupInformation, PrivilegedExceptionAction<T>) line: 471	
	TUGIContainingProcessor.process(TProtocol, TProtocol) line: 55	
	TThreadPoolServer$WorkerProcess.run() line: 206	
	ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145	
	ThreadPoolExecutor$Worker.run() line: 615	
	Thread.run() line: 724	



> select * throws exception for orcfile table after adding new columns
> --------------------------------------------------------------------
>
>                 Key: HIVE-5797
>                 URL: https://issues.apache.org/jira/browse/HIVE-5797
>             Project: Hive
>          Issue Type: Bug
>          Components: Serializers/Deserializers
>            Reporter: Szehon Ho
>
> Given the following tables:
> select * from two;
> +-----+----+
> | id  | a  |
> +-----+----+
> | 1   | a  |
> | 2   | b  |
> +-----+----+
>  select * from three;
> +-----+----+----+
> | id  | a  | b  |
> +-----+----+----+
> | 1   | a  | z  |
> | 2   | b  | y  |
> | 3   | c  | x  |
> +-----+----+----+
> Execute the following steps:
> create table testrc (id bigint, a string) stored as rcfile;
> insert into table testrc select * from two;
> select * from testrc;  //returns correctly
> +-----+----+
> | id  | a  |
> +-----+----+
> | 1   | a  |
> | 2   | b  |
> +-----+----+
>  alter table testrc add columns (b string);
>  insert into table testrc select * from three;
> select * from testrc;  
> throws the following exception:
> Thread [pool-4-thread-1] (Suspended (exception ArrayIndexOutOfBoundsException))	
> 	OrcStruct$OrcStructInspector.getStructFieldData(Object, StructField) line: 210	
> 	DelegatedStructObjectInspector.getStructFieldData(Object, StructField) line: 85	
> 	ExprNodeColumnEvaluator._evaluate(Object, int) line: 94	
> 	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object, int) line: 77	
> 	ExprNodeColumnEvaluator(ExprNodeEvaluator<T>).evaluate(Object) line: 65	
> 	SelectOperator.processOp(Object, int) line: 79	
> 	SelectOperator(Operator<T>).process(Object, int) line: 488	
> 	TableScanOperator(Operator<T>).forward(Object, ObjectInspector) line: 826	
> 	TableScanOperator.processOp(Object, int) line: 91	
> 	TableScanOperator(Operator<T>).process(Object, int) line: 488	
> 	FetchOperator.pushRow(InspectableObject) line: 518	
> 	FetchOperator.pushRow() line: 510	
> 	FetchTask.fetch(ArrayList<String>) line: 138	
> 	Driver.getResults(ArrayList<String>) line: 1499	
> 	SQLOperation.getNextRowSet(FetchOrientation, long) line: 219	
> 	OperationManager.getOperationNextRowSet(OperationHandle, FetchOrientation, long) line: 171	
> 	HiveSessionImpl.fetchResults(OperationHandle, FetchOrientation, long) line: 420	
> 	CLIService.fetchResults(OperationHandle, FetchOrientation, long) line: 318	
> 	ThriftBinaryCLIService(ThriftCLIService).FetchResults(TFetchResultsReq) line: 386	
> 	TCLIService$Processor$FetchResults<I>.getResult(I, FetchResults_args) line: 1373	
> 	TCLIService$Processor$FetchResults<I>.getResult(Object, TBase) line: 1358	
> 	TCLIService$Processor$FetchResults<I>(ProcessFunction<I,T>).process(int, TProtocol, TProtocol, I) line: 39	
> 	TCLIService$Processor<I>(TBaseProcessor<I>).process(TProtocol, TProtocol) line: 39	
> 	TUGIContainingProcessor$1.run() line: 58	
> 	TUGIContainingProcessor$1.run() line: 55	
> 	AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]	
> 	Subject.doAs(Subject, PrivilegedExceptionAction<T>) line: 415	
> 	UserGroupInformation.doAs(PrivilegedExceptionAction<T>) line: 1485	
> 	Hadoop23Shims(HadoopShimsSecure).doAs(UserGroupInformation, PrivilegedExceptionAction<T>) line: 471	
> 	TUGIContainingProcessor.process(TProtocol, TProtocol) line: 55	
> 	TThreadPoolServer$WorkerProcess.run() line: 206	
> 	ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145	
> 	ThreadPoolExecutor$Worker.run() line: 615	
> 	Thread.run() line: 724	



--
This message was sent by Atlassian JIRA
(v6.1#6144)