Description
I was asked by a user that they were seeing inconsistent schema when stored on OrcStorage. Sample code
A = load 'input.txt' as (a0:long); B = GROUP A by a0; STORE B into 'filename' using OrcStorage();
Pig's schema B: {group: long,A: bag: { tuple(a0: long)}}.
Expected Orc schema struct<group:bigint,A:array<struct<bigint>>>
Actual Orc schema struct<group:bigint,A:array<bigint>>
This only happens when a tuple contains a single field.
Current schema without struct(tuple) is better in saving space but it would be nice to have an option to keep the extra struct(tuple) layer if user expects schema evolution within that tuple by adding more fields in the future.