Class MongoPluginImplementor
java.lang.Object
org.apache.drill.exec.store.plan.AbstractPluginImplementor
org.apache.drill.exec.store.mongo.plan.MongoPluginImplementor
- All Implemented Interfaces:
PluginImplementor
Implementation of
PluginImplementor for Mongo.
This class tries to convert operators to use MongoCollection.find()
if only simple project and filter expressions are present,
otherwise MongoCollection.aggregate(java.util.List<? extends org.bson.conversions.Bson>) is used to obtain data from Mongo.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleancanImplement(org.apache.calcite.rel.core.Aggregate aggregate) booleancanImplement(org.apache.calcite.rel.core.Filter filter) booleancanImplement(org.apache.calcite.rel.core.Project project) booleancanImplement(org.apache.calcite.rel.core.Sort sort) booleancanImplement(org.apache.calcite.rel.core.TableScan scan) booleancanImplement(org.apache.calcite.rel.core.Union union) booleancanImplement(DrillLimitRelBase limit) protected booleanhasPluginGroupScan(org.apache.calcite.rel.RelNode node) voidimplement(PluginAggregateRel aggregate) voidimplement(PluginFilterRel filter) voidimplement(PluginLimitRel limit) voidimplement(PluginProjectRel project) voidimplement(PluginSortRel sort) voidimplement(PluginUnionRel union) voidprotected Class<? extends StoragePlugin> Methods inherited from class org.apache.drill.exec.store.plan.AbstractPluginImplementor
artificialFilter, artificialLimit, canImplement, findGroupScan, implement, splitProjectMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.drill.exec.store.plan.PluginImplementor
visitChild
-
Constructor Details
-
MongoPluginImplementor
public MongoPluginImplementor()
-
-
Method Details
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor- Throws:
IOException
-
implement
- Specified by:
implementin interfacePluginImplementor- Overrides:
implementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Aggregate aggregate) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Filter filter) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
- Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Project project) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Sort sort) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Union union) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.TableScan scan) - Specified by:
canImplementin interfacePluginImplementor- Overrides:
canImplementin classAbstractPluginImplementor
-
supportedPlugin
- Specified by:
supportedPluginin classAbstractPluginImplementor
-
getPhysicalOperator
-
hasPluginGroupScan
protected boolean hasPluginGroupScan(org.apache.calcite.rel.RelNode node) - Specified by:
hasPluginGroupScanin classAbstractPluginImplementor
-