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

Chris Pesto updated PIG-2099:
-----------------------------

    Tags: piggybank  (was: piggbank)

> AllLoader in trunk does not work properly with JSON schemas
> -----------------------------------------------------------
>
>                 Key: PIG-2099
>                 URL: https://issues.apache.org/jira/browse/PIG-2099
>             Project: Pig
>          Issue Type: Bug
>          Components: data
>    Affects Versions: 0.8.0, 0.8.1
>            Reporter: Chris Pesto
>
> The AllLoader in the Piggybank in trunk does not pass JSON-defined schemas to 
> the child loaders it instantiates.  If the schema is defined in the LOAD 
> function, when Pig calls getSchema on the AllLoader the AllLoader 
> instantiates the child loader and calls the child's getSchema if it respects 
> the LoadMetadata interface.  If the AllLoader finds the JSON schema in a 
> file, it does not instantiate the child loader until prepareToRead is called, 
> and the child does not receive the schema.  I have hacked this in by adding 
> to the AllLoader:
>         transient String location = null;
>         transient Job job = null;
> then in AllLoader::setLocation:
>         this.location = location;
>         this.job = job;
> then in AllLoader::prepareToRead:
>         if (childLoadFunc instanceof LoadMetadata) {
>                 ((LoadMetadata) childLoadFunc).getSchema(location, job);
>         }
> Although I suspect it is not good practice to store the location/job in the 
> class variables like that, I don't know a better way to fix this.
> ------
> Also, getFuncSpecFromContent in the accompanying LoadFuncHelper class with 
> the AllLoader should be modified:
>         funcSpec = new 
> FuncSpec("org.apache.pig.piggybank.storage.PigStorageSchema()");
> since it currently instantiates a normal PigStorage object, which does not 
> understand pre-defined schemas.  The documentation for the AllLoader should 
> reference PigStorageSchema instead of PigStorage as well.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to