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
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canImplement
(org.apache.calcite.rel.core.Aggregate aggregate) boolean
canImplement
(org.apache.calcite.rel.core.Filter filter) boolean
canImplement
(org.apache.calcite.rel.core.Project project) boolean
canImplement
(org.apache.calcite.rel.core.Sort sort) boolean
canImplement
(org.apache.calcite.rel.core.TableScan scan) boolean
canImplement
(org.apache.calcite.rel.core.Union union) boolean
canImplement
(DrillLimitRelBase limit) protected boolean
hasPluginGroupScan
(org.apache.calcite.rel.RelNode node) void
implement
(PluginAggregateRel aggregate) void
implement
(PluginFilterRel filter) void
implement
(PluginLimitRel limit) void
implement
(PluginProjectRel project) void
implement
(PluginSortRel sort) void
implement
(PluginUnionRel union) void
protected Class<? extends StoragePlugin>
Methods inherited from class org.apache.drill.exec.store.plan.AbstractPluginImplementor
artificialFilter, artificialLimit, canImplement, findGroupScan, implement, splitProject
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.drill.exec.store.plan.PluginImplementor
visitChild
-
Constructor Details
-
MongoPluginImplementor
public MongoPluginImplementor()
-
-
Method Details
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
- Throws:
IOException
-
implement
- Specified by:
implement
in interfacePluginImplementor
- Overrides:
implement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Aggregate aggregate) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Filter filter) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
- Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Project project) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Sort sort) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.Union union) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
canImplement
public boolean canImplement(org.apache.calcite.rel.core.TableScan scan) - Specified by:
canImplement
in interfacePluginImplementor
- Overrides:
canImplement
in classAbstractPluginImplementor
-
supportedPlugin
- Specified by:
supportedPlugin
in classAbstractPluginImplementor
-
getPhysicalOperator
-
hasPluginGroupScan
protected boolean hasPluginGroupScan(org.apache.calcite.rel.RelNode node) - Specified by:
hasPluginGroupScan
in classAbstractPluginImplementor
-