Github user paul-rogers commented on a diff in the pull request:

    https://github.com/apache/drill/pull/1032#discussion_r150685113
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/store/dfs/FileSystemSchemaFactory.java
 ---
    @@ -73,9 +87,10 @@ public void registerSchemas(SchemaConfig schemaConfig, 
SchemaPlus parent) throws
     
         public FileSystemSchema(String name, SchemaConfig schemaConfig) throws 
IOException {
           super(ImmutableList.<String>of(), name);
    +      final DrillFileSystem fs = 
ImpersonationUtil.createFileSystem(schemaConfig.getUserName(), 
plugin.getFsConf());
           for(WorkspaceSchemaFactory f :  factories){
    -        if (f.accessible(schemaConfig.getUserName())) {
    -          WorkspaceSchema s = f.createSchema(getSchemaPath(), 
schemaConfig);
    +        WorkspaceSchema s = f.createSchema(getSchemaPath(), schemaConfig, 
fs);
    +        if ( s != null) {
    --- End diff --
    
    Here we iterate over a list of workspace schema factories. For each, we 
resolve a schemaConfig against the file system.
    
    Under what situations would we have multiple factories? Selecting from two 
distinct storage plugins?
    
    Calcite tends to resolve the same things over and over. Will this method be 
called multiple times?


---

Reply via email to