TableInfo info = (TableInfo) tables.get(name);
if(info != null) return (Table<E>) info.table;
Object selection = schemaProvider.getSelectionBaseOnName(name);
if(selection == null) return null;
DrillTable table = DrillTable.createTable(client, typeFactory, this, name, null, config, selection);
info = new TableInfo(name, table);
TableInfo oldInfo = (TableInfo) tables.putIfAbsent(name, info);
if(oldInfo != null) return (Table<E>) oldInfo.table;
return (Table<E>) table;
}