@Translator(name="mongodb", description="MongoDB Translator, reads and writes the data to MongoDB") public class MongoDBExecutionFactory extends ExecutionFactory<ConnectionFactory,MongoDBConnection>
ExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport
Modifier and Type | Field and Description |
---|---|
static String |
AVOID_PROJECTION |
static Version |
FOUR_0 |
static String |
FUNC_GEO_INTERSECTS |
static String |
FUNC_GEO_NEAR |
static String |
FUNC_GEO_NEAR_SPHERE |
static String |
FUNC_GEO_POLYGON_INTERSECTS |
static String |
FUNC_GEO_POLYGON_WITHIN |
static String |
FUNC_GEO_WITHIN |
protected Map<String,FunctionModifier> |
functionModifiers |
static String[] |
GEOSPATIAL_FUNCTIONS |
static Version |
THREE_0 |
static Version |
TWO_4 |
static Version |
TWO_6 |
DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
Constructor and Description |
---|
MongoDBExecutionFactory() |
Modifier and Type | Method and Description |
---|---|
Object |
convertToMongoType(Object value,
com.mongodb.DB mongoDB,
String fqn)
Mongodb only supports certain data types, Teiid need to serialize them in other compatible
formats, and convert them back while reading them.
|
ProcedureExecution |
createDirectExecution(List<Argument> arguments,
Command command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
MongoDBConnection connection) |
ProcedureExecution |
createProcedureExecution(Call command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
MongoDBConnection connection) |
ResultSetExecution |
createResultSetExecution(QueryExpression command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
MongoDBConnection connection) |
UpdateExecution |
createUpdateExecution(Command command,
ExecutionContext executionContext,
RuntimeMetadata metadata,
MongoDBConnection connection) |
String |
getDatabaseVersion() |
List<String> |
getDefaultSupportedFunctions() |
Map<String,FunctionModifier> |
getFunctionModifiers() |
MetadataProcessor<MongoDBConnection> |
getMetadataProcessor()
Get a MetadataProcessor for the translator to read the metadata.
|
com.mongodb.AggregationOptions |
getOptions(int batchSize) |
List<String> |
getSupportedFunctions()
Get list of all supported function names.
|
ExecutionFactory.TransactionSupport |
getTransactionSupport() |
void |
initCapabilities(MongoDBConnection connection)
Will be called by
ExecutionFactory.start() with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities() |
boolean |
isSourceRequiredForCapabilities()
If true, the
ExecutionFactory.initCapabilities(Object) method will be consulted prior
to determining the capabilities |
void |
registerFunctionModifier(String name,
FunctionModifier modifier) |
Object |
retrieveValue(Object value,
Class<?> expectedClass,
com.mongodb.DB mongoDB,
String fqn,
String colName) |
void |
setDatabaseVersion(String version)
Sets the database version.
|
void |
setDatabaseVersion(Version version) |
void |
setSupportsAggregatesCount(boolean value) |
void |
setUseDisk(boolean useDisk) |
void |
start()
Initialize the connector with supplied configuration
|
boolean |
supportsAggregatesAvg()
Support indicates connector can accept the AVG aggregate function
|
boolean |
supportsAggregatesCount()
Support indicates connector can accept the COUNT aggregate function
|
boolean |
supportsAggregatesCountStar()
Support indicates connector can accept the COUNT(*) aggregate function
|
boolean |
supportsAggregatesMax()
Support indicates connector can accept the MAX aggregate function
|
boolean |
supportsAggregatesMin()
Support indicates connector can accept the MIN aggregate function
|
boolean |
supportsAggregatesSum()
Support indicates connector can accept the SUM aggregate function
|
boolean |
supportsBulkUpdate()
Whether the source supports updates with multiple value sets
|
boolean |
supportsCompareCriteriaEquals()
Support indicates connector accepts criteria of form (element = constant)
|
boolean |
supportsCompareCriteriaOrdered()
Support indicates connector accepts criteria of form (element <=|>= constant)
The query engine will may pushdown queries containing < or > if NOT is also supported. |
boolean |
supportsGroupBy()
Whether the source supports an explicit GROUP BY clause
|
boolean |
supportsHaving()
Whether the source supports the HAVING clause
|
boolean |
supportsInCriteria()
Support indicates connector accepts criteria of form (element IN set)
|
boolean |
supportsIsNullCriteria()
Support indicates connector accepts criteria of form (element IS NULL)
|
boolean |
supportsLikeCriteria()
Support indicates connector accepts criteria of form (element LIKE constant)
|
boolean |
supportsLikeRegex() |
boolean |
supportsNotCriteria()
Support indicates connector accepts logical criteria NOT
|
boolean |
supportsOnlyLiteralComparison() |
boolean |
supportsOrCriteria()
Support indicates connector accepts logical criteria connected by OR
|
boolean |
supportsOrderByUnrelated()
Support indicates connector accepts ORDER BY clause with columns not from the select
|
boolean |
supportsRowLimit()
Gets whether the connector can limit the number of rows returned by a query.
|
boolean |
supportsRowOffset()
Gets whether the connector supports a SQL clause (similar to the LIMIT with an offset) that can return
result sets that start in the middle of the resulting rows returned by a query
|
boolean |
supportsSelectExpression()
Support indicates connector can accept expressions other than element
symbols in the SELECT clause.
|
boolean |
supportsSelfJoins()
Support indicates connector can accept self-joins where a
group is joined to itself with aliases.
|
boolean |
useAnsiJoin()
Whether the source prefers to use ANSI style joins.
|
boolean |
useDisk() |
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, 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
public static final Version TWO_4
public static final Version TWO_6
public static final Version THREE_0
public static final Version FOUR_0
public static final String FUNC_GEO_WITHIN
public static final String FUNC_GEO_INTERSECTS
public static final String FUNC_GEO_NEAR
public static final String FUNC_GEO_NEAR_SPHERE
public static final String FUNC_GEO_POLYGON_WITHIN
public static final String FUNC_GEO_POLYGON_INTERSECTS
public static final String[] GEOSPATIAL_FUNCTIONS
public static final String AVOID_PROJECTION
protected Map<String,FunctionModifier> functionModifiers
public void start() throws TranslatorException
ExecutionFactory
start
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
@TranslatorProperty(display="Database Version", description="Database Version") public String getDatabaseVersion()
@TranslatorProperty(display="Use Disk", description="Use disk for aggregation processing in MongoDB", advanced=true) public boolean useDisk()
public void setUseDisk(boolean useDisk)
public void setDatabaseVersion(String version)
getVersion()
version
- public void setDatabaseVersion(Version version)
public MetadataProcessor<MongoDBConnection> getMetadataProcessor()
ExecutionFactory
getMetadataProcessor
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public void registerFunctionModifier(String name, FunctionModifier modifier)
public Map<String,FunctionModifier> getFunctionModifiers()
public ResultSetExecution createResultSetExecution(QueryExpression command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
createResultSetExecution
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
public ProcedureExecution createProcedureExecution(Call command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
createProcedureExecution
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
public UpdateExecution createUpdateExecution(Command command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
createUpdateExecution
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
public ProcedureExecution createDirectExecution(List<Argument> arguments, Command command, ExecutionContext executionContext, RuntimeMetadata metadata, MongoDBConnection connection) throws TranslatorException
createDirectExecution
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
public boolean useAnsiJoin()
ExecutionFactory
useAnsiJoin
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsSelfJoins()
ExecutionFactory
ExecutionFactory.supportsAliasedTable()
.supportsSelfJoins
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsCompareCriteriaEquals()
ExecutionFactory
supportsCompareCriteriaEquals
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsCompareCriteriaOrdered()
ExecutionFactory
supportsCompareCriteriaOrdered
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsLikeCriteria()
ExecutionFactory
supportsLikeCriteria
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsOrCriteria()
ExecutionFactory
supportsOrCriteria
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsOrderByUnrelated()
ExecutionFactory
supportsOrderByUnrelated
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsGroupBy()
ExecutionFactory
supportsGroupBy
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsHaving()
ExecutionFactory
supportsHaving
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsAggregatesSum()
ExecutionFactory
supportsAggregatesSum
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsAggregatesAvg()
ExecutionFactory
supportsAggregatesAvg
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsAggregatesMin()
ExecutionFactory
supportsAggregatesMin
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsAggregatesMax()
ExecutionFactory
supportsAggregatesMax
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public void setSupportsAggregatesCount(boolean value)
@TranslatorProperty(display="Supports Count(expr)", description="Supports Aggregate function count with expression", advanced=true) public boolean supportsAggregatesCount()
ExecutionFactory
supportsAggregatesCount
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsAggregatesCountStar()
ExecutionFactory
supportsAggregatesCountStar
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public List<String> getSupportedFunctions()
ExecutionFactory
getSupportedFunctions
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
for a listing of system pushdown functions. Note that
not all system functions are listed as some functions will use a common name
such as CONCAT vs. the || operator, and other functions will be rewritten and
not pushed down, such as SPACE.
Note: User defined functions should be specified fully qualified.
public boolean supportsInCriteria()
ExecutionFactory
supportsInCriteria
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsNotCriteria()
ExecutionFactory
supportsNotCriteria
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsRowLimit()
ExecutionFactory
supportsRowLimit
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsIsNullCriteria()
ExecutionFactory
supportsIsNullCriteria
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsRowOffset()
ExecutionFactory
supportsRowOffset
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsBulkUpdate()
ExecutionFactory
supportsBulkUpdate
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsLikeRegex()
supportsLikeRegex
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsSelectExpression()
ExecutionFactory
supportsSelectExpression
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public boolean supportsOnlyLiteralComparison()
supportsOnlyLiteralComparison
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public Object retrieveValue(Object value, Class<?> expectedClass, com.mongodb.DB mongoDB, String fqn, String colName) throws TranslatorException
field
- expectedClass
- TranslatorException
public Object convertToMongoType(Object value, com.mongodb.DB mongoDB, String fqn) throws TranslatorException
value
- TranslatorException
public com.mongodb.AggregationOptions getOptions(int batchSize)
public boolean isSourceRequiredForCapabilities()
ExecutionFactory
ExecutionFactory.initCapabilities(Object)
method will be consulted prior
to determining the capabilitiesisSourceRequiredForCapabilities
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public ExecutionFactory.TransactionSupport getTransactionSupport()
getTransactionSupport
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
public void initCapabilities(MongoDBConnection connection) throws TranslatorException
ExecutionFactory
ExecutionFactory.start()
with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities()
initCapabilities
in class ExecutionFactory<ConnectionFactory,MongoDBConnection>
TranslatorException
Copyright © 2019. All rights reserved.