[ https://issues.apache.org/jira/browse/PIG-598?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12777317#action_12777317 ]
Ashutosh Chauhan commented on PIG-598: -------------------------------------- One issue I faced while working on PIG-928 was when trying to name variables in ruby bound to java variables. Ruby variable names (in BSF) needs to be prepended with $ as shown below. {code} define myudf org.apache.pig.scriptedUDFs.GenericEvalFunc('wordtokens','return $input.split();'); {code} Now this $ appearing in the script should not be substituted. But parser tries to substitute it and fails (with error undefined parameter) since param is not specified while invoking Pig. My hack was to 'escape' this $ and then provide param-substiution while invoking the script as -p input=input {code} define myudf org.apache.pig.scriptedUDFs.GenericEvalFunc('wordtokens','return $$input.split();'); {code} Note extra $. Obviously, if we are thinking of adding pig-928 and accept udfs written in ruby, this will come up as an issue. One possibility is Pig should not try to do substitution if param is not specified on cmd line. I think way it currently is parser scans the script for $ and then tries to do substiution. If substitution was not defined it error outs. I think if it is not specified on cmd line, then parser should ignore it and continue instead of failing. > Parameter substitution ($PARAMETER) should not be performed in comments > ----------------------------------------------------------------------- > > Key: PIG-598 > URL: https://issues.apache.org/jira/browse/PIG-598 > Project: Pig > Issue Type: Bug > Components: impl > Affects Versions: 0.2.0 > Reporter: David Ciemiewicz > Assignee: Thejas M Nair > Attachments: PIG-598.patch > > > Compiling the following code example will generate an error that > $NOT_A_PARAMETER is an Undefined Parameter. > This is problematic as sometimes you want to comment out parts of your code, > including parameters so that you don't have to define them. > This I think it would be really good if parameter substitution was not > performed in comments. > {code} > -- $NOT_A_PARAMETER > {code} > {code} > -bash-3.00$ pig -exectype local -latest comment.pig > USING: /grid/0/gs/pig/current > java.lang.RuntimeException: Undefined parameter : NOT_A_PARAMETER > at > org.apache.pig.tools.parameters.PreprocessorContext.substitute(PreprocessorContext.java:221) > at > org.apache.pig.tools.parameters.ParameterSubstitutionPreprocessor.parsePigFile(ParameterSubstitutionPreprocessor.java:106) > at > org.apache.pig.tools.parameters.ParameterSubstitutionPreprocessor.genSubstitutedFile(ParameterSubstitutionPreprocessor.java:86) > at org.apache.pig.Main.runParamPreprocessor(Main.java:394) > at org.apache.pig.Main.main(Main.java:296) > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.