Package org.teiid.translator.mongodb
Class MongoDBExecutionFactory
- java.lang.Object
-
- org.teiid.translator.ExecutionFactory<ConnectionFactory,MongoDBConnection>
-
- org.teiid.translator.mongodb.MongoDBExecutionFactory
-
@Translator(name="mongodb", description="MongoDB Translator, reads and writes the data to MongoDB") public class MongoDBExecutionFactory extends ExecutionFactory<ConnectionFactory,MongoDBConnection>
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.teiid.translator.ExecutionFactory
ExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport
-
-
Field Summary
Fields Modifier and Type Field Description static StringAVOID_PROJECTIONstatic VersionFOUR_0static StringFUNC_GEO_INTERSECTSstatic StringFUNC_GEO_NEARstatic StringFUNC_GEO_NEAR_SPHEREstatic StringFUNC_GEO_POLYGON_INTERSECTSstatic StringFUNC_GEO_POLYGON_WITHINstatic StringFUNC_GEO_WITHINprotected Map<String,FunctionModifier>functionModifiersstatic String[]GEOSPATIAL_FUNCTIONSstatic VersionTHREE_0static VersionTWO_4static VersionTWO_6-
Fields inherited from class org.teiid.translator.ExecutionFactory
DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
-
-
Constructor Summary
Constructors Constructor Description MongoDBExecutionFactory()
-
Method Summary
-
Methods inherited from class org.teiid.translator.ExecutionFactory
addPushDownFunction, areLobsUsableAfterClose, closeConnection, createExecution, getCacheDirective, getCollationLocale, getConnection, getConnection, getDefaultNullOrder, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxFromGroups, getMaxInCriteriaSize, getMaxProjectedColumns, getMetadata, getNativeQueryProcedureName, getPushDownFunctions, getRequiredLikeEscape, getSupportedJoinCriteria, getTypeFacility, isCopyLobs, isForkable, isImmutable, isSourceRequired, isSourceRequiredForMetadata, isThreadBound, requiresCriteria, returnsSingleUpdateCount, setCollationLocale, setCopyLobs, setDirectQueryProcedureName, setExcludedCommonTableExpressionName, setImmutable, setMaxDependentInPredicates, setMaxInCriteriaSize, setNativeQueryProcedureName, setRequiresCriteria, setSourceRequired, setSourceRequiredForMetadata, setSupportedJoinCriteria, setSupportsDirectQueryProcedure, setSupportsFullOuterJoins, setSupportsInnerJoins, setSupportsNativeQueries, setSupportsOrderBy, setSupportsOuterJoins, setSupportsSelectDistinct, setThreadBound, setTransactionSupport, supportsAdvancedOlapOperations, supportsAggregatesCountBig, supportsAggregatesDistinct, supportsAggregatesEnhancedNumeric, supportsAliasedTable, supportsArrayAgg, supportsArrayType, supportsBatchedUpdates, supportsCommonTableExpressions, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueries, supportsCorrelatedSubqueryLimit, supportsDependentJoins, supportsDirectQueryProcedure, supportsElementaryOlapOperations, supportsExcept, supportsExistsCriteria, supportsFormatLiteral, supportsFullDependentJoins, supportsFullOuterJoins, supportsFunctionsInGroupBy, supportsGeographyType, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsInCriteriaSubquery, supportsInlineViews, supportsInnerJoins, supportsInsertWithQueryExpression, supportsIntersect, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeCriteriaEscapeCharacter, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyFormatLiterals, supportsOnlyLateralJoinProcedure, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByNullOrdering, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureParameterExpression, supportsProcedureTable, supportsQuantifiedCompareCriteriaAll, supportsQuantifiedCompareCriteriaSome, supportsRecursiveCommonTableExpressions, supportsScalarSubqueries, supportsScalarSubqueryProjection, supportsSearchedCaseExpressions, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSelectWithoutFrom, supportsSetQueryLimitOffset, supportsSetQueryOrderBy, supportsSimilarTo, supportsStringAgg, supportsSubqueryCommonTableExpressions, supportsSubqueryInOn, supportsUnions, supportsUpsert, supportsWindowDistinctAggregates, supportsWindowFrameClause, supportsWindowFunctionCumeDist, supportsWindowFunctionNthValue, supportsWindowFunctionNtile, supportsWindowFunctionPercentRank, supportsWindowOrderByWithAggregates, useBindingsForDependentJoin
-
-
-
-
Field Detail
-
TWO_4
public static final Version TWO_4
-
TWO_6
public static final Version TWO_6
-
THREE_0
public static final Version THREE_0
-
FOUR_0
public static final Version FOUR_0
-
FUNC_GEO_WITHIN
public static final String FUNC_GEO_WITHIN
- See Also:
- Constant Field Values
-
FUNC_GEO_INTERSECTS
public static final String FUNC_GEO_INTERSECTS
- See Also:
- Constant Field Values
-
FUNC_GEO_NEAR
public static final String FUNC_GEO_NEAR
- See Also:
- Constant Field Values
-
FUNC_GEO_NEAR_SPHERE
public static final String FUNC_GEO_NEAR_SPHERE
- See Also:
- Constant Field Values
-
FUNC_GEO_POLYGON_WITHIN
public static final String FUNC_GEO_POLYGON_WITHIN
- See Also:
- Constant Field Values
-
FUNC_GEO_POLYGON_INTERSECTS
public static final String FUNC_GEO_POLYGON_INTERSECTS
- See Also:
- Constant Field Values
-
GEOSPATIAL_FUNCTIONS
public static final String[] GEOSPATIAL_FUNCTIONS
-
AVOID_PROJECTION
public static final String AVOID_PROJECTION
- See Also:
- Constant Field Values
-
functionModifiers
protected Map<String,FunctionModifier> functionModifiers
-
-
Method Detail
-
start
public void start() throws TranslatorException- Overrides:
startin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
getDatabaseVersion
@TranslatorProperty(display="Database Version", description="Database Version") public String getDatabaseVersion()
-
useDisk
@TranslatorProperty(display="Use Disk", description="Use disk for aggregation processing in MongoDB", advanced=true) public boolean useDisk()
-
setUseDisk
public void setUseDisk(boolean useDisk)
-
setDatabaseVersion
public void setDatabaseVersion(String version)
Sets the database version. See alsogetVersion()- Parameters:
version-
-
setDatabaseVersion
public void setDatabaseVersion(Version version)
-
getMetadataProcessor
public MetadataProcessor<MongoDBConnection> getMetadataProcessor()
- Overrides:
getMetadataProcessorin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
registerFunctionModifier
public void registerFunctionModifier(String name, FunctionModifier modifier)
-
getFunctionModifiers
public Map<String,FunctionModifier> getFunctionModifiers()
-
createResultSetExecution
public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
- Overrides:
createResultSetExecutionin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
createProcedureExecution
public ProcedureExecution createProcedureExecution(Call command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
- Overrides:
createProcedureExecutionin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
createUpdateExecution
public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
- Overrides:
createUpdateExecutionin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
createDirectExecution
public ProcedureExecution createDirectExecution(List<Argument> arguments, Command command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
- Overrides:
createDirectExecutionin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
useAnsiJoin
public boolean useAnsiJoin()
- Overrides:
useAnsiJoinin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsSelfJoins
public boolean supportsSelfJoins()
- Overrides:
supportsSelfJoinsin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsCompareCriteriaEquals
public boolean supportsCompareCriteriaEquals()
- Overrides:
supportsCompareCriteriaEqualsin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsCompareCriteriaOrdered
public boolean supportsCompareCriteriaOrdered()
- Overrides:
supportsCompareCriteriaOrderedin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsLikeCriteria
public boolean supportsLikeCriteria()
- Overrides:
supportsLikeCriteriain classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsOrCriteria
public boolean supportsOrCriteria()
- Overrides:
supportsOrCriteriain classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsOrderByUnrelated
public boolean supportsOrderByUnrelated()
- Overrides:
supportsOrderByUnrelatedin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsGroupBy
public boolean supportsGroupBy()
- Overrides:
supportsGroupByin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsHaving
public boolean supportsHaving()
- Overrides:
supportsHavingin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsAggregatesSum
public boolean supportsAggregatesSum()
- Overrides:
supportsAggregatesSumin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsAggregatesAvg
public boolean supportsAggregatesAvg()
- Overrides:
supportsAggregatesAvgin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsAggregatesMin
public boolean supportsAggregatesMin()
- Overrides:
supportsAggregatesMinin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsAggregatesMax
public boolean supportsAggregatesMax()
- Overrides:
supportsAggregatesMaxin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
setSupportsAggregatesCount
public void setSupportsAggregatesCount(boolean value)
-
supportsAggregatesCount
@TranslatorProperty(display="Supports Count(expr)", description="Supports Aggregate function count with expression", advanced=true) public boolean supportsAggregatesCount()
- Overrides:
supportsAggregatesCountin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsAggregatesCountStar
public boolean supportsAggregatesCountStar()
- Overrides:
supportsAggregatesCountStarin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
getSupportedFunctions
public List<String> getSupportedFunctions()
- Overrides:
getSupportedFunctionsin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsInCriteria
public boolean supportsInCriteria()
- Overrides:
supportsInCriteriain classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsNotCriteria
public boolean supportsNotCriteria()
- Overrides:
supportsNotCriteriain classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsRowLimit
public boolean supportsRowLimit()
- Overrides:
supportsRowLimitin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsIsNullCriteria
public boolean supportsIsNullCriteria()
- Overrides:
supportsIsNullCriteriain classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsRowOffset
public boolean supportsRowOffset()
- Overrides:
supportsRowOffsetin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsBulkUpdate
public boolean supportsBulkUpdate()
- Overrides:
supportsBulkUpdatein classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsLikeRegex
public boolean supportsLikeRegex()
- Overrides:
supportsLikeRegexin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsSelectExpression
public boolean supportsSelectExpression()
- Overrides:
supportsSelectExpressionin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
supportsOnlyLiteralComparison
public boolean supportsOnlyLiteralComparison()
- Overrides:
supportsOnlyLiteralComparisonin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
retrieveValue
public Object retrieveValue(Object value, Class<?> expectedClass, com.mongodb.DB mongoDB, String fqn, String colName) throws TranslatorException
- Throws:
TranslatorException
-
convertToMongoType
public Object convertToMongoType(Object value, com.mongodb.DB mongoDB, String fqn) throws TranslatorException
Mongodb only supports certain data types, Teiid need to serialize them in other compatible formats, and convert them back while reading them.- Parameters:
value-- Returns:
- Throws:
TranslatorException
-
getOptions
public com.mongodb.AggregationOptions getOptions(int batchSize)
-
isSourceRequiredForCapabilities
public boolean isSourceRequiredForCapabilities()
- Overrides:
isSourceRequiredForCapabilitiesin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
getTransactionSupport
public ExecutionFactory.TransactionSupport getTransactionSupport()
- Overrides:
getTransactionSupportin classExecutionFactory<ConnectionFactory,MongoDBConnection>
-
initCapabilities
public void initCapabilities(MongoDBConnection connection) throws TranslatorException
- Overrides:
initCapabilitiesin classExecutionFactory<ConnectionFactory,MongoDBConnection>- Throws:
TranslatorException
-
-