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

Christopher Olston updated PIG-730:
-----------------------------------

    Description: 
grunt> a = load 'foo' using BinStorage as 
(url:chararray,outlinks:{t:(target:chararray,text:chararray)});
grunt> b = union (load 'foo' using BinStorage as 
(url:chararray,outlinks:{t:(target:chararray,text:chararray)})), (load 'bar' 
using BinStorage as 
(url:chararray,outlinks:{t:(target:chararray,text:chararray)}));
grunt> c = foreach a generate flatten(outlinks.target);
grunt> d = foreach b generate flatten(outlinks.target);

---> Would expect both C and D to work, but only C works. D gives the following 
error:
---> Turns out using outlinks.t.target works for D but not for C.
---> I don't care which one, but the same syntax should work for both!

2009-03-24 13:15:05,376 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
1000: Error during parsing. Invalid alias: target in {t: (target: 
chararray,text: chararray)}
Details at logfile: /echo/olston/data/pig_1237925683748.log
grunt> quit

$ cat pig_1237925683748.log 
ERROR 1000: Error during parsing. Invalid alias: target in {t: (target: 
chararray,text: chararray)}
org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during 
parsing. Invalid alias: target in {t: (target: chararray,text: chararray)}
        at org.apache.pig.PigServer.parseQuery(PigServer.java:317)
        at org.apache.pig.PigServer.registerQuery(PigServer.java:276)
        at 
org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:529)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:280)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:99)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
        at org.apache.pig.Main.main(Main.java:321)
Caused by: org.apache.pig.impl.logicalLayer.parser.ParseException: Invalid 
alias: target in {t: (target: chararray,text: chararray)}
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.AliasFieldOrSpec(QueryParser.java:6042)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.ColOrSpec(QueryParser.java:5898)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.BracketedSimpleProj(QueryParser.java:5423)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseEvalSpec(QueryParser.java:4100)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.UnaryExpr(QueryParser.java:3967)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.CastExpr(QueryParser.java:3920)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.MultiplicativeExpr(QueryParser.java:3829)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.AdditiveExpr(QueryParser.java:3755)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.InfixExpr(QueryParser.java:3721)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItem(QueryParser.java:3617)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItemList(QueryParser.java:3557)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.GenerateStatement(QueryParser.java:3514)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.NestedBlock(QueryParser.java:2985)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.ForEachClause(QueryParser.java:2395)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseExpr(QueryParser.java:1028)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.Expr(QueryParser.java:804)
        at 
org.apache.pig.impl.logicalLayer.parser.QueryParser.Parse(QueryParser.java:595)
        at 
org.apache.pig.impl.logicalLayer.LogicalPlanBuilder.parse(LogicalPlanBuilder.java:60)
        at org.apache.pig.PigServer.parseQuery(PigServer.java:310)
        ... 6 more


  was:
links = (union (load '/echo/olston/data/Echo-fetcher_first_extractedLinks-1' 
using BinStorage as 
(url:chararray,outlinks:{t:(target:chararray,text:chararray)})), (load 
'/echo/olston/data/Echo-fetcher_first_extractedLinks-2' using BinStorage as 
(url:chararray,outlinks:{t:(target:chararray,text:chararray)})));
DESCRIBE links;

gives this error:

2009-03-24 12:33:59,657 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
1052: Cannot cast bag with schema outlinks: bag({t: (target: chararray,text: 
chararray)}) to tuple with schema tuple
Details at logfile: /echo/olston/data/pig_1237923219665.log

the pig_...log file contains:

ERROR 1052: Cannot cast bag with schema outlinks: bag({t: (target: 
chararray,text: chararray)}) to tuple with schema tuple
org.apache.pig.impl.logicalLayer.FrontendException: Unable to describe schema 
for alias links
        at org.apache.pig.PigServer.dumpSchema(PigServer.java:394)
        at 
org.apache.pig.tools.grunt.GruntParser.processDescribe(GruntParser.java:153)
        at 
org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:188)
        at 
org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:84)
        at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:72)
        at org.apache.pig.Main.main(Main.java:296)
Caused by: org.apache.pig.impl.plan.PlanValidationException: An unexpected 
exception caused the validation to stop
        at 
org.apache.pig.impl.plan.PlanValidator.validateSkipCollectException(PlanValidator.java:104)
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingValidator.validate(TypeCheckingValidator.java:40)
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingValidator.validate(TypeCheckingValidator.java:30)
        at 
org.apache.pig.impl.logicalLayer.validators.LogicalPlanValidationExecutor.validate(LogicalPlanValidationExecutor.java:79)
        at org.apache.pig.PigServer.compileLp(PigServer.java:722)
        at org.apache.pig.PigServer.dumpSchema(PigServer.java:386)
        ... 5 more
Caused by: org.apache.pig.impl.logicalLayer.validators.TypeCheckerException: 
Problem while casting inputs of Union
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingVisitor.visit(TypeCheckingVisitor.java:2143)
        at org.apache.pig.impl.logicalLayer.LOUnion.visit(LOUnion.java:113)
        at org.apache.pig.impl.logicalLayer.LOUnion.visit(LOUnion.java:34)
        at 
org.apache.pig.impl.plan.DependencyOrderWalker.walk(DependencyOrderWalker.java:68)
        at org.apache.pig.impl.plan.PlanVisitor.visit(PlanVisitor.java:51)
        at 
org.apache.pig.impl.plan.PlanValidator.validateSkipCollectException(PlanValidator.java:101)
        ... 10 more
Caused by: org.apache.pig.impl.logicalLayer.validators.TypeCheckerException: 
Cannot cast bag with schema outlinks: bag({t: (target: chararray,text: 
chararray)}) to tuple with schema tuple
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingVisitor.visit(TypeCheckingVisitor.java:2034)
        at org.apache.pig.impl.logicalLayer.LOCast.visit(LOCast.java:65)
        at org.apache.pig.impl.logicalLayer.LOCast.visit(LOCast.java:29)
        at 
org.apache.pig.impl.plan.DependencyOrderWalker.walk(DependencyOrderWalker.java:68)
        at org.apache.pig.impl.plan.PlanVisitor.visit(PlanVisitor.java:51)
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingVisitor.checkInnerPlan(TypeCheckingVisitor.java:2944)
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingVisitor.visit(TypeCheckingVisitor.java:2849)
        at 
org.apache.pig.impl.logicalLayer.validators.TypeCheckingVisitor.visit(TypeCheckingVisitor.java:2137)
        ... 15 more



> problem combining schema from a union of several LOAD expressions, with a 
> nested bag inside the schema.
> -------------------------------------------------------------------------------------------------------
>
>                 Key: PIG-730
>                 URL: https://issues.apache.org/jira/browse/PIG-730
>             Project: Pig
>          Issue Type: Bug
>         Environment: pig local mode
>            Reporter: Christopher Olston
>
> grunt> a = load 'foo' using BinStorage as 
> (url:chararray,outlinks:{t:(target:chararray,text:chararray)});
> grunt> b = union (load 'foo' using BinStorage as 
> (url:chararray,outlinks:{t:(target:chararray,text:chararray)})), (load 'bar' 
> using BinStorage as 
> (url:chararray,outlinks:{t:(target:chararray,text:chararray)}));
> grunt> c = foreach a generate flatten(outlinks.target);
> grunt> d = foreach b generate flatten(outlinks.target);
> ---> Would expect both C and D to work, but only C works. D gives the 
> following error:
> ---> Turns out using outlinks.t.target works for D but not for C.
> ---> I don't care which one, but the same syntax should work for both!
> 2009-03-24 13:15:05,376 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 
> 1000: Error during parsing. Invalid alias: target in {t: (target: 
> chararray,text: chararray)}
> Details at logfile: /echo/olston/data/pig_1237925683748.log
> grunt> quit
> $ cat pig_1237925683748.log 
> ERROR 1000: Error during parsing. Invalid alias: target in {t: (target: 
> chararray,text: chararray)}
> org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during 
> parsing. Invalid alias: target in {t: (target: chararray,text: chararray)}
>         at org.apache.pig.PigServer.parseQuery(PigServer.java:317)
>         at org.apache.pig.PigServer.registerQuery(PigServer.java:276)
>         at 
> org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:529)
>         at 
> org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:280)
>         at 
> org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:99)
>         at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
>         at org.apache.pig.Main.main(Main.java:321)
> Caused by: org.apache.pig.impl.logicalLayer.parser.ParseException: Invalid 
> alias: target in {t: (target: chararray,text: chararray)}
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.AliasFieldOrSpec(QueryParser.java:6042)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.ColOrSpec(QueryParser.java:5898)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.BracketedSimpleProj(QueryParser.java:5423)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseEvalSpec(QueryParser.java:4100)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.UnaryExpr(QueryParser.java:3967)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.CastExpr(QueryParser.java:3920)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.MultiplicativeExpr(QueryParser.java:3829)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.AdditiveExpr(QueryParser.java:3755)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.InfixExpr(QueryParser.java:3721)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItem(QueryParser.java:3617)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.FlattenedGenerateItemList(QueryParser.java:3557)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.GenerateStatement(QueryParser.java:3514)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.NestedBlock(QueryParser.java:2985)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.ForEachClause(QueryParser.java:2395)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.BaseExpr(QueryParser.java:1028)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.Expr(QueryParser.java:804)
>         at 
> org.apache.pig.impl.logicalLayer.parser.QueryParser.Parse(QueryParser.java:595)
>         at 
> org.apache.pig.impl.logicalLayer.LogicalPlanBuilder.parse(LogicalPlanBuilder.java:60)
>         at org.apache.pig.PigServer.parseQuery(PigServer.java:310)
>         ... 6 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to