[ 
https://issues.apache.org/jira/browse/PIG-2729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13415694#comment-13415694
 ] 

Rohini Palaniswamy commented on PIG-2729:
-----------------------------------------

Johannes,
   Do you have the updated patch which fixes the unit tests also? The static 
map in QueryParserDriver which caches the macro files is the reason for the 
test failure once the importUsingSearchPathTest is corrected.
 
{code}
 String srchPath = 
pigContext.getProperties().getProperty("pig.import.search.path");
+                if (!fname.startsWith("/") && !fname.startsWith(".") && 
srchPath != null) {
+                    String[] paths = srchPath.split(",");
+                    for (String path : paths) {
+                        String resolvedPath = path + File.separator + fname;
+                        if ((new File(resolvedPath)).exists()) {
+                            fname = resolvedPath;
+                            break;
+                        }
+                    }
+                }
{code}

  The above code also does not handle "../". If the script had "import 
../readme.pig" and pig.import.search.path was "/x/y", then /x/y/../readme.pig 
will be searched for. Also need to remove the redundant 
QueryParserUtils.getImportScriptAsReader code as getMacroFile will now return a 
absolute path. 
                
> Macro expansion does not use pig.import.search.path - UnitTest borked
> ---------------------------------------------------------------------
>
>                 Key: PIG-2729
>                 URL: https://issues.apache.org/jira/browse/PIG-2729
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.9.2, 0.10.0
>         Environment: pig-0.9.2 and pig-0.10.0, hadoop-0.20.2 from Clouderas 
> distribution cdh3u3 on Kubuntu 12.04 64Bit.
>            Reporter: Johannes Schwenk
>             Fix For: 0.10.0
>
>         Attachments: test-macros.tar.gz, use-search-path-for-imports.patch
>
>
> org.apache.pig.test.TestMacroExpansion, in function importUsingSearchPathTest 
> the import statement is provided with the full path to /tmp/mytest2.pig so 
> the pig.import.search.path is never used. I changed the import to 
> import 'mytest2.pig';
> and ran the UnitTest again. This time the test failed as expected from my 
> experience from earlier this day trying in vain to get pig eat my 
> pig.import.search.path property! Other properties in the same custom 
> properties file (provided via -propertyFile command line option) like 
> udf.import.list get read without any problem.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to