public class org.apache.drill.exec.store.mongo.MongoGroupScan extends org.apache.drill.exec.physical.base.AbstractGroupScan implements org.apache.drill.exec.store.mongo.DrillMongoConstants
{
private static final int SELECT;
private static final java.util.Comparator LIST_SIZE_COMPARATOR;
private static final java.util.Comparator LIST_SIZE_COMPARATOR_REV;
private static final org.slf4j.Logger logger;
private org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin;
private org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig;
private org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec;
private java.util.List columns;
private java.util.Map endpointFragmentMapping;
private java.util.Map chunksMapping;
private java.util.Map chunksInverseMapping;
private final org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch;
private boolean useAggregate;
public void <init>(java.lang.String, org.apache.drill.exec.store.mongo.MongoScanSpec, org.apache.drill.exec.store.mongo.MongoStoragePluginConfig, java.util.List, boolean, org.apache.drill.exec.store.StoragePluginRegistry)
{
org.apache.drill.exec.store.StoragePluginRegistry v;
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v;
org.apache.drill.exec.store.StoragePlugin v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.String v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.lang.String;
v := @parameter: org.apache.drill.exec.store.mongo.MongoScanSpec;
v := @parameter: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig;
v := @parameter: java.util.List;
v := @parameter: boolean;
v := @parameter: org.apache.drill.exec.store.StoragePluginRegistry;
v = interfaceinvoke v.<org.apache.drill.exec.store.StoragePluginRegistry: org.apache.drill.exec.store.StoragePlugin resolve(org.apache.drill.common.logical.StoragePluginConfig,java.lang.Class)>(v, class "Lorg/apache/drill/exec/store/mongo/MongoStoragePlugin;");
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void <init>(java.lang.String,org.apache.drill.exec.store.mongo.MongoStoragePlugin,org.apache.drill.exec.store.mongo.MongoScanSpec,java.util.List,boolean)>(v, v, v, v, v);
return;
}
public void <init>(java.lang.String, org.apache.drill.exec.store.mongo.MongoStoragePlugin, org.apache.drill.exec.store.mongo.MongoScanSpec, java.util.List, boolean)
{
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
org.apache.drill.shaded.guava.com.google.common.base.Stopwatch v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
java.lang.String v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.lang.String;
v := @parameter: org.apache.drill.exec.store.mongo.MongoStoragePlugin;
v := @parameter: org.apache.drill.exec.store.mongo.MongoScanSpec;
v := @parameter: java.util.List;
v := @parameter: boolean;
specialinvoke v.<org.apache.drill.exec.physical.base.AbstractGroupScan: void <init>(java.lang.String)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch createUnstarted()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch> = v;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin> = v;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig getConfig()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig> = v;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec> = v;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns> = v;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate> = v;
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void init()>();
return;
}
private void <init>(org.apache.drill.exec.store.mongo.MongoGroupScan)
{
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v;
org.apache.drill.exec.store.mongo.MongoGroupScan v, v;
java.util.List v;
java.util.Map v, v, v;
org.apache.drill.shaded.guava.com.google.common.base.Stopwatch v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: org.apache.drill.exec.store.mongo.MongoGroupScan;
specialinvoke v.<org.apache.drill.exec.physical.base.AbstractGroupScan: void <init>(org.apache.drill.exec.physical.base.AbstractGroupScan)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch createUnstarted()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate>;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate> = v;
return;
}
private boolean isShardedCluster(com.mongodb.client.MongoClient)
{
org.bson.Document v, v;
com.mongodb.client.MongoClient v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
com.mongodb.client.MongoDatabase v;
java.lang.Integer v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.String v, v;
boolean v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: com.mongodb.client.MongoClient;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = interfaceinvoke v.<com.mongodb.client.MongoClient: com.mongodb.client.MongoDatabase getDatabase(java.lang.String)>(v);
v = new org.bson.Document;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("isMaster", v);
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: org.bson.Document runCommand(org.bson.conversions.Bson)>(v);
v = virtualinvoke v.<org.bson.Document: java.lang.String getString(java.lang.Object)>("msg");
if v == null goto label;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("isdbgrid");
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private void init()
{
org.bson.Document v, v, v, v, v;
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v, v;
com.mongodb.client.MongoDatabase v;
java.lang.Integer v, v, v, v;
java.util.Map v, v;
java.util.Set v, v, v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
com.mongodb.client.MongoCollection v, v;
java.util.ArrayList v, v;
java.util.LinkedHashMap v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v;
com.mongodb.ServerAddress v, v;
org.apache.drill.exec.store.mongo.common.ChunkInfo v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v, v, v, v;
com.mongodb.client.FindIterable v, v, v, v;
com.mongodb.client.MongoClient v, v;
java.lang.String[] v, v, v;
java.util.HashMap v, v, v;
java.util.function.Function v;
com.mongodb.client.MongoCursor v, v;
int v, v, v;
java.util.Iterator v, v, v, v, v;
org.apache.drill.exec.store.mongo.MongoScanSpec v, v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePluginConfig: java.util.List getHosts()>();
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Lists: java.util.ArrayList newArrayList()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: com.mongodb.client.MongoClient getClient()>();
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping> = v;
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.LinkedHashMap newLinkedHashMap()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping> = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate>;
if v == 0 goto label;
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean isShardedCluster(com.mongodb.client.MongoClient)>(v);
if v == 0 goto label;
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List getPrimaryShardInfo()>();
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void handleUnshardedCollection(java.util.List)>(v);
goto label;
label:
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean isShardedCluster(com.mongodb.client.MongoClient)>(v);
if v == 0 goto label;
v = interfaceinvoke v.<com.mongodb.client.MongoClient: com.mongodb.client.MongoDatabase getDatabase(java.lang.String)>("config");
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.client.MongoCollection getCollection(java.lang.String)>("chunks");
v = new org.bson.Document;
specialinvoke v.<org.bson.Document: void <init>()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getCollectionName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u.\u0001");
virtualinvoke v.<org.bson.Document: java.lang.Object put(java.lang.String,java.lang.Object)>("ns", v);
v = new org.bson.Document;
specialinvoke v.<org.bson.Document: void <init>()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
virtualinvoke v.<org.bson.Document: java.lang.Object put(java.lang.String,java.lang.Object)>("shard", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
virtualinvoke v.<org.bson.Document: java.lang.Object put(java.lang.String,java.lang.Object)>("min", v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
virtualinvoke v.<org.bson.Document: java.lang.Object put(java.lang.String,java.lang.Object)>("max", v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: com.mongodb.client.FindIterable find(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.FindIterable projection(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.MongoCursor iterator()>();
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.client.MongoCollection getCollection(java.lang.String)>("shards");
v = new org.bson.Document;
specialinvoke v.<org.bson.Document: void <init>()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
virtualinvoke v.<org.bson.Document: java.lang.Object put(java.lang.String,java.lang.Object)>("host", v);
v = 0;
label:
v = interfaceinvoke v.<com.mongodb.client.MongoCursor: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<com.mongodb.client.MongoCursor: java.lang.Object next()>();
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("shard");
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("_id");
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = new org.bson.Document;
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("_id", v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: com.mongodb.client.FindIterable find(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.FindIterable projection(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.MongoCursor iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("host");
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 47);
v = lengthof v;
if v <= 1 goto label;
v = v[1];
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 44);
goto label;
label:
v = v[0];
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 44);
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: com.mongodb.client.MongoClient getClient(java.util.List)>(v);
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Set getPreferredHosts(com.mongodb.client.MongoClient)>(v);
if v != null goto label;
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Sets: java.util.HashSet newHashSet()>();
v = v;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping>;
v = virtualinvoke v.<com.mongodb.ServerAddress: java.lang.String getHost()>();
v = staticinvoke <org.apache.drill.exec.store.mongo.MongoGroupScan$lambda_init_0__12: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.mongodb.ServerAddress: java.lang.String toString()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = new org.apache.drill.exec.store.mongo.common.ChunkInfo;
specialinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void <init>(java.util.List,java.lang.String)>(v, v);
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("min");
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
v = virtualinvoke v.<org.bson.Document: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof org.bson.types.MinKey;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void setMinFilters(java.util.Map)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("max");
v = interfaceinvoke v.<java.util.Map: java.util.Set keySet()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v instanceof org.bson.types.MaxKey;
if v != 0 goto label;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void setMaxFilters(java.util.Map)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v = 1;
goto label;
label:
if v != 0 goto label;
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List getPrimaryShardInfo()>();
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void handleUnshardedCollection(java.util.List)>(v);
goto label;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePluginConfig: java.util.List getHosts()>();
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void handleUnshardedCollection(java.util.List)>(v);
label:
return;
}
private void handleUnshardedCollection(java.util.List)
{
java.lang.Object[] v;
java.util.ArrayList v;
java.util.HashSet v;
java.util.Map v, v, v, v;
java.lang.String v, v, v, v;
boolean v;
org.apache.drill.shaded.guava.com.google.common.base.Joiner v;
com.mongodb.ServerAddress v, v;
java.util.Iterator v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
org.apache.drill.exec.store.mongo.MongoScanSpec v, v;
org.apache.drill.exec.store.mongo.common.ChunkInfo v;
java.lang.Object v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.List;
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Joiner: org.apache.drill.shaded.guava.com.google.common.base.Joiner on(char)>(46);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getCollectionName()>();
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Joiner: java.lang.String join(java.lang.Object,java.lang.Object,java.lang.Object[])>(v, v, v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Sets: java.util.HashSet newHashSet()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
v = new org.apache.drill.exec.store.mongo.common.ChunkInfo;
specialinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void <init>(java.util.List,java.lang.String)>(v, v);
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void setMinFilters(java.util.Map)>(v);
v = staticinvoke <java.util.Collections: java.util.Map emptyMap()>();
virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: void setMaxFilters(java.util.Map)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Lists: java.util.ArrayList newArrayList()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping>;
v = virtualinvoke v.<com.mongodb.ServerAddress: java.lang.String getHost()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
return;
}
private java.util.List getPrimaryShardInfo()
{
org.bson.Document v, v, v, v;
com.mongodb.client.MongoClient v;
com.mongodb.client.MongoCollection v, v;
java.lang.String[] v, v;
com.mongodb.client.MongoDatabase v;
java.lang.Integer v, v;
java.util.ArrayList v;
int v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
java.lang.String v, v, v, v, v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
com.mongodb.client.FindIterable v, v, v, v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.Object v, v, v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: com.mongodb.client.MongoClient getClient()>();
v = interfaceinvoke v.<com.mongodb.client.MongoClient: com.mongodb.client.MongoDatabase getDatabase(java.lang.String)>("config");
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.client.MongoCollection getCollection(java.lang.String)>("databases");
v = new org.bson.Document;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("_id", v);
v = new org.bson.Document;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("primary", v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: com.mongodb.client.FindIterable find(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.FindIterable projection(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: java.lang.Object first()>();
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = virtualinvoke v.<org.bson.Document: java.lang.String getString(java.lang.Object)>("primary");
staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.client.MongoCollection getCollection(java.lang.String)>("shards");
v = new org.bson.Document;
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("_id", v);
v = new org.bson.Document;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("host", v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: com.mongodb.client.FindIterable find(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: com.mongodb.client.FindIterable projection(org.bson.conversions.Bson)>(v);
v = interfaceinvoke v.<com.mongodb.client.FindIterable: java.lang.Object first()>();
v = staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object)>(v);
v = virtualinvoke v.<org.bson.Document: java.lang.String getString(java.lang.Object)>("host");
staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object)>(v);
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 47);
v = lengthof v;
if v <= 1 goto label;
v = v[1];
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 44);
goto label;
label:
v = v[0];
v = staticinvoke <org.apache.commons.lang.StringUtils: java.lang.String[] split(java.lang.String,char)>(v, 44);
label:
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Lists: java.util.ArrayList newArrayList(java.lang.Object[])>(v);
return v;
}
private java.util.Set getPreferredHosts(com.mongodb.client.MongoClient)
{
com.mongodb.ReadPreference v;
org.bson.Document v, v;
com.mongodb.client.MongoClient v;
com.mongodb.client.MongoDatabase v;
java.lang.Integer v;
java.util.HashSet v;
byte v;
int v;
java.lang.String v, v, v, v;
boolean v, v, v, v, v, v, v;
com.mongodb.ServerAddress v, v, v;
java.util.Iterator v, v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.Object v, v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: com.mongodb.client.MongoClient;
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Sets: java.util.HashSet newHashSet()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = interfaceinvoke v.<com.mongodb.client.MongoClient: com.mongodb.client.MongoDatabase getDatabase(java.lang.String)>(v);
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.ReadPreference getReadPreference()>();
v = new org.bson.Document;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(1);
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("isMaster", v);
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: org.bson.Document runCommand(org.bson.conversions.Bson)>(v);
v = virtualinvoke v.<org.bson.Document: java.lang.String getString(java.lang.Object)>("primary");
v = virtualinvoke v.<org.bson.Document: java.lang.Object get(java.lang.Object)>("hosts");
v = virtualinvoke v.<com.mongodb.ReadPreference: java.lang.String getName()>();
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase()>();
v = -1;
v = virtualinvoke v.<java.lang.String: int hashCode()>();
lookupswitch(v)
{
case -1751204802: goto label;
case 403216866: goto label;
case 1429526925: goto label;
case 1465942207: goto label;
case 1968996692: goto label;
default: goto label;
};
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PRIMARY");
if v == 0 goto label;
v = 0;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("PRIMARYPREFERRED");
if v == 0 goto label;
v = 1;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SECONDARY");
if v == 0 goto label;
v = 2;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("SECONDARYPREFERRED");
if v == 0 goto label;
v = 3;
goto label;
label:
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("NEAREST");
if v == 0 goto label;
v = 4;
label:
tableswitch(v)
{
case 0: goto label;
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
default: goto label;
};
label:
if v != null goto label;
return null;
label:
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
return v;
label:
if v == null goto label;
if v != null goto label;
label:
return null;
label:
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
if v != null goto label;
return null;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = new com.mongodb.ServerAddress;
specialinvoke v.<com.mongodb.ServerAddress: void <init>(java.lang.String)>(v);
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
goto label;
label:
return v;
label:
return null;
}
public org.apache.drill.exec.physical.base.GroupScan clone(java.util.List)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v, v;
java.util.List v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.List;
v = new org.apache.drill.exec.store.mongo.MongoGroupScan;
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void <init>(org.apache.drill.exec.store.mongo.MongoGroupScan)>(v);
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns> = v;
return v;
}
public org.apache.drill.exec.physical.base.GroupScan clone(int)
{
org.bson.Document v;
org.apache.drill.exec.store.mongo.MongoGroupScan v, v;
java.lang.Integer v;
java.util.List v;
int v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.String v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: int;
v = new org.apache.drill.exec.store.mongo.MongoGroupScan;
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void <init>(org.apache.drill.exec.store.mongo.MongoGroupScan)>(v);
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate> = 1;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec getScanSpec()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.util.List getOperations()>();
v = new org.bson.Document;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
specialinvoke v.<org.bson.Document: void <init>(java.lang.String,java.lang.Object)>("$limit", v);
v = virtualinvoke v.<org.bson.Document: java.lang.String toJson()>();
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
return v;
}
public boolean canPushdownProjects(java.util.List)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.List;
return 1;
}
public void applyAssignments(java.util.List)
{
java.lang.Integer v, v, v, v;
java.lang.Long v;
java.util.Map v, v, v, v, v, v;
org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec v, v;
java.util.Set v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.shaded.guava.com.google.common.base.Stopwatch v, v, v;
java.lang.Object[] v, v;
long v, v;
java.util.ArrayList v;
java.lang.String v, v, v, v;
java.util.PriorityQueue v, v;
boolean v, v, v, v, v, v;
java.util.Collection v;
java.util.List v;
java.util.HashMap v, v;
java.util.function.Function v;
java.util.HashSet v;
int v, v, v, v, v, v, v, v, v, v, v;
double v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v, v, v, v;
java.util.concurrent.TimeUnit v;
java.lang.Object v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Comparator v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.List;
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.List)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Incoming endpoints :\u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch reset()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch start()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
v = interfaceinvoke v.<java.util.Map: int size()>();
if v > v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = newarray (java.lang.Object)[2];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Incoming endpoints %d is greater than number of chunks %d", v);
staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Preconditions: void checkArgument(boolean,java.lang.Object)>(v, v);
v = v / v;
v = staticinvoke <java.lang.Math: double floor(double)>(v);
v = v / v;
v = staticinvoke <java.lang.Math: double ceil(double)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMapWithExpectedSize(int)>(v);
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping> = v;
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
v = 0;
label:
if v >= v goto label;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(int)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint: java.lang.String getAddress()>();
v = staticinvoke <org.apache.drill.exec.store.mongo.MongoGroupScan$lambda_applyAssignments_1__13: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object computeIfAbsent(java.lang.Object,java.util.function.Function)>(v, v);
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
v = v + 1;
goto label;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping>;
v = interfaceinvoke v.<java.util.Map: java.util.Set entrySet()>();
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Sets: java.util.HashSet newHashSet(java.lang.Iterable)>(v);
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec buildSubScanSpecAndGet(org.apache.drill.exec.store.mongo.common.ChunkInfo)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.Queue: boolean offer(java.lang.Object)>(v);
goto label;
label:
interfaceinvoke v.<java.util.Iterator: void remove()>();
goto label;
label:
v = new java.util.PriorityQueue;
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Comparator LIST_SIZE_COMPARATOR>;
specialinvoke v.<java.util.PriorityQueue: void <init>(int,java.util.Comparator)>(v, v);
v = new java.util.PriorityQueue;
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Comparator LIST_SIZE_COMPARATOR_REV>;
specialinvoke v.<java.util.PriorityQueue: void <init>(int,java.util.Comparator)>(v, v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
virtualinvoke v.<java.util.PriorityQueue: boolean offer(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= v goto label;
virtualinvoke v.<java.util.PriorityQueue: boolean offer(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<java.util.Set: int size()>();
if v <= 0 goto label;
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.util.PriorityQueue: java.lang.Object poll()>();
v = specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec buildSubScanSpecAndGet(org.apache.drill.exec.store.mongo.common.ChunkInfo)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
virtualinvoke v.<java.util.PriorityQueue: boolean offer(java.lang.Object)>(v);
goto label;
label:
v = virtualinvoke v.<java.util.PriorityQueue: java.lang.Object peek()>();
if v == null goto label;
v = virtualinvoke v.<java.util.PriorityQueue: java.lang.Object peek()>();
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
v = virtualinvoke v.<java.util.PriorityQueue: java.lang.Object poll()>();
v = virtualinvoke v.<java.util.PriorityQueue: java.lang.Object poll()>();
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object remove(int)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
v = interfaceinvoke v.<java.util.List: int size()>();
if v <= v goto label;
virtualinvoke v.<java.util.PriorityQueue: boolean offer(java.lang.Object)>(v);
label:
v = interfaceinvoke v.<java.util.List: int size()>();
if v >= v goto label;
virtualinvoke v.<java.util.PriorityQueue: boolean offer(java.lang.Object)>(v);
goto label;
label:
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger>;
v = newarray (java.lang.Object)[3];
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: long elapsed(java.util.concurrent.TimeUnit)>(v);
v = v / 1000L;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v[1] = v;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object[])>("Built assignment map in {} \u00b5s.\nEndpoints: {}.\nAssignment Map: {}", v);
return;
}
private org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec buildSubScanSpecAndGet(org.apache.drill.exec.store.mongo.common.ChunkInfo)
{
org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec v;
java.util.Map v, v;
boolean v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec v;
java.util.List v, v, v;
org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder v, v, v, v, v, v;
org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder v, v, v, v;
java.lang.String v, v, v, v, v;
org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder v, v;
org.apache.drill.exec.store.mongo.MongoScanSpec v, v, v, v, v, v;
org.apache.drill.exec.store.mongo.common.ChunkInfo v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: org.apache.drill.exec.store.mongo.common.ChunkInfo;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate>;
if v == 0 goto label;
v = staticinvoke <org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec: org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder builder()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.util.List getOperations()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder operations(java.util.List)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder dbName(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getCollectionName()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder collectionName(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: java.util.List getChunkLocList()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder hosts(java.util.List)>(v);
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec$MongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$MongoSubScanSpec build()>();
return v;
label:
v = staticinvoke <org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec: org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder builder()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: java.util.Map getMinFilters()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder minFilters(java.util.Map)>(v);
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: java.util.Map getMaxFilters()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder maxFilters(java.util.Map)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getFilters()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder filter(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder dbName(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getCollectionName()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder collectionName(java.lang.String)>(v);
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.common.ChunkInfo: java.util.List getChunkLocList()>();
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.BaseMongoSubScanSpec$BaseMongoSubScanSpecBuilder hosts(java.util.List)>(v);
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec$ShardedMongoSubScanSpecBuilder: org.apache.drill.exec.store.mongo.MongoSubScan$ShardedMongoSubScanSpec build()>();
return v;
}
public org.apache.drill.exec.store.mongo.MongoSubScan getSpecificScan(int)
{
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v;
org.apache.drill.exec.store.mongo.MongoSubScan v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.lang.Integer v;
java.util.List v;
java.util.Map v;
int v;
java.lang.Object v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
java.lang.String v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: int;
v = new org.apache.drill.exec.store.mongo.MongoSubScan;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.lang.String getUserName()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig>;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map endpointFragmentMapping>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns>;
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoSubScan: void <init>(java.lang.String,org.apache.drill.exec.store.mongo.MongoStoragePlugin,org.apache.drill.exec.store.mongo.MongoStoragePluginConfig,java.util.List,java.util.List)>(v, v, v, v, v);
return v;
}
public int getMaxParallelizationWidth()
{
int v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.Map v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
v = interfaceinvoke v.<java.util.Map: int size()>();
return v;
}
public java.lang.String getDigest()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.lang.String v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.lang.String toString()>();
return v;
}
public org.apache.drill.exec.physical.base.ScanStats getScanStats()
{
byte[] v;
com.mongodb.client.MongoClient v;
com.mongodb.client.MongoCollection v;
long v;
com.mongodb.client.MongoDatabase v;
org.apache.drill.common.exceptions.DrillRuntimeException v;
org.bson.codecs.configuration.CodecRegistry v;
org.bson.codecs.BsonTypeClassMap v;
byte v;
java.nio.charset.Charset v;
int v;
org.bson.codecs.DocumentCodec v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
java.lang.String v, v, v, v;
org.apache.drill.exec.physical.base.ScanStats v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.lang.Exception v;
com.mongodb.client.FindIterable v;
org.apache.drill.exec.store.mongo.MongoScanSpec v, v;
java.lang.Object v;
org.apache.drill.exec.physical.base.ScanStats$GroupScanProperty v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
label:
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: com.mongodb.client.MongoClient getClient()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getDbName()>();
v = interfaceinvoke v.<com.mongodb.client.MongoClient: com.mongodb.client.MongoDatabase getDatabase(java.lang.String)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoScanSpec: java.lang.String getCollectionName()>();
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: com.mongodb.client.MongoCollection getCollection(java.lang.String)>(v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: long estimatedDocumentCount()>();
v = v cmp 0L;
if v == 0 goto label;
v = new org.bson.codecs.DocumentCodec;
v = interfaceinvoke v.<com.mongodb.client.MongoDatabase: org.bson.codecs.configuration.CodecRegistry getCodecRegistry()>();
v = new org.bson.codecs.BsonTypeClassMap;
specialinvoke v.<org.bson.codecs.BsonTypeClassMap: void <init>()>();
specialinvoke v.<org.bson.codecs.DocumentCodec: void <init>(org.bson.codecs.configuration.CodecRegistry,org.bson.codecs.BsonTypeClassMap)>(v, v);
v = interfaceinvoke v.<com.mongodb.client.MongoCollection: com.mongodb.client.FindIterable find()>();
v = interfaceinvoke v.<com.mongodb.client.FindIterable: java.lang.Object first()>();
v = virtualinvoke v.<org.bson.Document: java.lang.String toJson(org.bson.codecs.Encoder)>(v);
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.nio.charset.Charset)>(v);
v = lengthof v;
label:
v = new org.apache.drill.exec.physical.base.ScanStats;
v = <org.apache.drill.exec.physical.base.ScanStats$GroupScanProperty: org.apache.drill.exec.physical.base.ScanStats$GroupScanProperty ESTIMATED_TOTAL_COST>;
specialinvoke v.<org.apache.drill.exec.physical.base.ScanStats: void <init>(org.apache.drill.exec.physical.base.ScanStats$GroupScanProperty,double,double,double)>(v, v, 1.0, 0.0F);
label:
return v;
label:
v := @caughtexception;
v = new org.apache.drill.common.exceptions.DrillRuntimeException;
v = virtualinvoke v.<java.lang.Exception: java.lang.String getMessage()>();
specialinvoke v.<org.apache.drill.common.exceptions.DrillRuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Exception from label to label with label;
}
public org.apache.drill.exec.physical.base.PhysicalOperator getNewWithChildren(java.util.List)
{
java.util.List v;
org.apache.drill.exec.store.mongo.MongoGroupScan v, v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.List;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Preconditions: void checkArgument(boolean)>(v);
v = new org.apache.drill.exec.store.mongo.MongoGroupScan;
specialinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: void <init>(org.apache.drill.exec.store.mongo.MongoGroupScan)>(v);
return v;
}
public java.util.List getOperatorAffinity()
{
java.lang.Long v;
java.util.Map v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
boolean v, v, v;
java.util.Collection v, v, v, v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.shaded.guava.com.google.common.base.Stopwatch v, v, v;
java.util.HashMap v, v;
long v, v;
java.util.ArrayList v;
org.apache.drill.exec.server.DrillbitContext v;
java.lang.String v, v, v, v;
org.slf4j.Logger v, v, v;
java.util.Iterator v, v, v;
java.util.concurrent.TimeUnit v;
org.apache.drill.exec.physical.EndpointAffinity v;
java.lang.Object v, v, v, v, v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch reset()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch start()>();
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoStoragePlugin: org.apache.drill.exec.server.DrillbitContext getContext()>();
v = virtualinvoke v.<org.apache.drill.exec.server.DrillbitContext: java.util.Collection getBits()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint: java.lang.String getAddress()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger>;
v = virtualinvoke v.<org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint: java.lang.String getAddress()>();
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Endpoint address: {}", v);
goto label;
label:
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Maps: java.util.HashMap newHashMap()>();
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = interfaceinvoke v.<java.util.Collection: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<com.mongodb.ServerAddress: java.lang.String getHost()>();
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v == null goto label;
v = interfaceinvoke v.<java.util.Map: java.lang.Object get(java.lang.Object)>(v);
if v != null goto label;
v = new org.apache.drill.exec.physical.EndpointAffinity;
specialinvoke v.<org.apache.drill.exec.physical.EndpointAffinity: void <init>(org.apache.drill.exec.proto.CoordinationProtos$DrillbitEndpoint,double)>(v, 1.0);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>(v, v);
goto label;
label:
virtualinvoke v.<org.apache.drill.exec.physical.EndpointAffinity: void addAffinity(double)>(1.0);
goto label;
label:
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger>;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch>;
v = <java.util.concurrent.TimeUnit: java.util.concurrent.TimeUnit NANOSECONDS>;
v = virtualinvoke v.<org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: long elapsed(java.util.concurrent.TimeUnit)>(v);
v = v / 1000L;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Took {} \u00b5s to get operator affinity", v);
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger>;
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.util.Collection)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Affined drillbits : \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = interfaceinvoke v.<java.util.Map: java.util.Collection values()>();
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.collect.Lists: java.util.ArrayList newArrayList(java.lang.Iterable)>(v);
return v;
}
public boolean supportsLimitPushdown()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
return 1;
}
public org.apache.drill.exec.physical.base.GroupScan applyLimit(int)
{
int v;
org.apache.drill.exec.physical.base.GroupScan v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: int;
v = virtualinvoke v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.physical.base.GroupScan clone(int)>(v);
return v;
}
public java.util.List getColumns()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns>;
return v;
}
public org.apache.drill.exec.store.mongo.MongoScanSpec getScanSpec()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
return v;
}
public org.apache.drill.exec.store.mongo.MongoStoragePluginConfig getStorageConfig()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoStoragePluginConfig v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePluginConfig storagePluginConfig>;
return v;
}
public org.apache.drill.exec.store.mongo.MongoStoragePlugin getStoragePlugin()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoStoragePlugin v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoStoragePlugin storagePlugin>;
return v;
}
public void setUseAggregate(boolean)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: boolean;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate> = v;
return;
}
public boolean isUseAggregate()
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate>;
return v;
}
public java.lang.String toString()
{
org.apache.drill.common.PlanStringBuilder v, v, v, v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.List v;
java.lang.Boolean v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
java.lang.String v;
boolean v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = new org.apache.drill.common.PlanStringBuilder;
specialinvoke v.<org.apache.drill.common.PlanStringBuilder: void <init>(java.lang.Object)>(v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec>;
v = virtualinvoke v.<org.apache.drill.common.PlanStringBuilder: org.apache.drill.common.PlanStringBuilder field(java.lang.String,java.lang.Object)>("MongoScanSpec", v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.List columns>;
v = virtualinvoke v.<org.apache.drill.common.PlanStringBuilder: org.apache.drill.common.PlanStringBuilder field(java.lang.String,java.lang.Object)>("columns", v);
v = v.<org.apache.drill.exec.store.mongo.MongoGroupScan: boolean useAggregate>;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
v = virtualinvoke v.<org.apache.drill.common.PlanStringBuilder: org.apache.drill.common.PlanStringBuilder field(java.lang.String,java.lang.Object)>("useAggregate", v);
v = virtualinvoke v.<org.apache.drill.common.PlanStringBuilder: java.lang.String toString()>();
return v;
}
void <init>()
{
org.apache.drill.shaded.guava.com.google.common.base.Stopwatch v;
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.lang.String v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v = null;
specialinvoke v.<org.apache.drill.exec.physical.base.AbstractGroupScan: void <init>(java.lang.String)>(v);
v = staticinvoke <org.apache.drill.shaded.guava.com.google.common.base.Stopwatch: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch createUnstarted()>();
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.shaded.guava.com.google.common.base.Stopwatch watch> = v;
return;
}
void setChunksMapping(java.util.Map)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.Map v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.Map;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksMapping> = v;
return;
}
void setScanSpec(org.apache.drill.exec.store.mongo.MongoScanSpec)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
org.apache.drill.exec.store.mongo.MongoScanSpec v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: org.apache.drill.exec.store.mongo.MongoScanSpec;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: org.apache.drill.exec.store.mongo.MongoScanSpec scanSpec> = v;
return;
}
void setInverseChunksMapping(java.util.Map)
{
org.apache.drill.exec.store.mongo.MongoGroupScan v;
java.util.Map v;
v := @this: org.apache.drill.exec.store.mongo.MongoGroupScan;
v := @parameter: java.util.Map;
v.<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Map chunksInverseMapping> = v;
return;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.util.function.ToIntFunction v;
java.util.Comparator v, v, v;
v = staticinvoke <org.apache.drill.exec.store.mongo.MongoGroupScan$size__14: java.util.function.ToIntFunction bootstrap$()>();
v = staticinvoke <java.util.Comparator: java.util.Comparator comparingInt(java.util.function.ToIntFunction)>(v);
<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Comparator LIST_SIZE_COMPARATOR> = v;
v = <org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Comparator LIST_SIZE_COMPARATOR>;
v = staticinvoke <java.util.Collections: java.util.Comparator reverseOrder(java.util.Comparator)>(v);
<org.apache.drill.exec.store.mongo.MongoGroupScan: java.util.Comparator LIST_SIZE_COMPARATOR_REV> = v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/drill/exec/store/mongo/MongoGroupScan;");
<org.apache.drill.exec.store.mongo.MongoGroupScan: org.slf4j.Logger logger> = v;
return;
}
}