Class PrestoDBExecutionFactory


  • @Translator(name="prestodb",
                description="PrestoDB custom translator")
    public class PrestoDBExecutionFactory
    extends org.teiid.translator.jdbc.JDBCExecutionFactory
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory

        org.teiid.translator.jdbc.JDBCExecutionFactory.StructRetrieval
      • Nested classes/interfaces inherited from class org.teiid.translator.ExecutionFactory

        org.teiid.translator.ExecutionFactory.Format, org.teiid.translator.ExecutionFactory.NullOrder, org.teiid.translator.ExecutionFactory.SupportedJoinCriteria, org.teiid.translator.ExecutionFactory.TransactionSupport
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.teiid.util.Version V_0_153  
      • Fields inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory

        DEFAULT_MAX_DEPENDENT_PREDICATES, DEFAULT_MAX_IN_CRITERIA, DEFAULT_TIME_ZONE, dialect
      • Fields inherited from class org.teiid.translator.ExecutionFactory

        DEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE, DEFAULT_MAX_PROJECTED_COLUMNS
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      org.teiid.translator.ProcedureExecution createDirectExecution​(List<org.teiid.language.Argument> arguments, org.teiid.language.Command command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, Connection conn)  
      protected org.teiid.translator.jdbc.JDBCMetadataProcessor createMetadataProcessor()
      Deprecated.
      org.teiid.translator.ProcedureExecution createProcedureExecution​(org.teiid.language.Call command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, Connection conn)  
      org.teiid.translator.jdbc.JDBCUpdateExecution createUpdateExecution​(org.teiid.language.Command command, org.teiid.translator.ExecutionContext executionContext, org.teiid.metadata.RuntimeMetadata metadata, Connection conn)  
      org.teiid.translator.MetadataProcessor<Connection> getMetadataProcessor()  
      List<String> getSupportedFunctions()  
      void initCapabilities​(Connection connection)  
      boolean isSourceRequiredForMetadata()  
      void start()  
      boolean supportsAggregatesEnhancedNumeric()  
      boolean supportsArrayType()  
      boolean supportsBatchedUpdates()  
      boolean supportsBulkUpdate()  
      boolean supportsCommonTableExpressions()  
      boolean supportsConvert​(int fromType, int toType)  
      boolean supportsCorrelatedSubqueries()  
      boolean supportsElementaryOlapOperations()  
      boolean supportsExcept()  
      boolean supportsExistsCriteria()  
      boolean supportsFunctionsInGroupBy()  
      boolean supportsInlineViews()  
      boolean supportsIntersect()  
      boolean supportsOnlyLiteralComparison()  
      boolean supportsOrderByNullOrdering()  
      boolean supportsRowLimit()  
      boolean supportsRowOffset()  
      boolean supportsSelectWithoutFrom()  
      boolean supportsSubqueryInOn()  
      String translateLiteralDate​(Date dateValue)
      Base on https://prestodb.io/docs/current/functions/datetime.html, the support format are date '2012-08-08', time '01:00', timestamp '2012-08-08 01:00'
      String translateLiteralTime​(Time timeValue)  
      String translateLiteralTimestamp​(Timestamp timestampValue)  
      boolean useAnsiJoin()  
      protected boolean usesDatabaseVersion()  
      • Methods inherited from class org.teiid.translator.jdbc.JDBCExecutionFactory

        addSourceComment, afterInitialConnectionObtained, bindValue, closeConnection, convertObject, createResultSetExecution, createTempTable, executeStoredProcedure, formatDateValue, formatDateValue, getCommentFormat, getConnection, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCreateTempTableSQL, getDatabaseCalendar, getDatabaseTimeZone, getDatabaseVersion, getDefaultNullOrder, getDefaultSupportedFunctions, getDialect, getFunctionModifiers, getHibernateDialectClassName, getLateralKeyword, getLikeRegexString, getMaxPreparedInsertBatchSize, getMetadata, getRemovePushdownCharacters, getSetOperationString, getSourceComment, getSQLConversionVisitor, getStructRetrieval, getTemporaryTableName, getTimestampNanoPrecision, getVersion, hasTimeType, intializeConnectionAfterCancel, isCharacterType, isDefaultTimeZone, isEnableDependentJoins, isExtendedAscii, isNonAscii, isNonAscii, isNonAsciiFunction, isSourceRequired, isSourceRequiredForCapabilities, isTrimStrings, loadedTemporaryTable, obtainedConnection, registerFunctionModifier, registerSpecificTypeOfOutParameter, replaceElementName, retrieveGeographyValue, retrieveGeographyValue, retrieveGeometryValue, retrieveGeometryValue, retrieveValue, retrieveValue, setCommentFormat, setDatabaseTimeZone, setDatabaseVersion, setDatabaseVersion, setEnableDependentJoins, setFetchSize, setMaxPreparedInsertBatchSize, setRemovePushdownCharacters, setStructRetrieval, setTrimStrings, setUseBindingsForDependentJoin, setUseBindVariables, setUseCommentsInSourceQuery, supportsAggregatesAvg, supportsAggregatesCount, supportsAggregatesCountStar, supportsAggregatesDistinct, supportsAggregatesMax, supportsAggregatesMin, supportsAggregatesSum, supportsAliasedTable, supportsBooleanExpressions, supportsCompareCriteriaEquals, supportsCompareCriteriaOrdered, supportsDependentJoins, supportsFullDependentJoins, supportsGeneratedKeys, supportsGeneratedKeys, supportsGroupBy, supportsHaving, supportsInCriteria, supportsInCriteriaSubquery, supportsInsertWithQueryExpression, supportsIsNullCriteria, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsNotCriteria, supportsOrCriteria, supportsOrderByUnrelated, supportsProcedureParameterExpression, supportsQuantifiedCompareCriteriaAll, supportsQuantifiedCompareCriteriaSome, supportsScalarSubqueries, supportsSearchedCaseExpressions, supportsSelectExpression, supportsSelfJoins, supportsSetQueryOrderBy, supportsUnions, tempTableRequiresTransaction, translate, translateCommand, translateGeographyLiteral, translateGeographyParameter, translateGeographySelect, translateGeometryLiteral, translateGeometryParameter, translateGeometrySelect, translateLimit, translateLiteralBinaryType, translateLiteralBoolean, useAsInGroupAlias, useBindingsForDependentJoin, useBindVariables, useColumnNamesForGeneratedKeys, useCommentsInSourceQuery, useNBindingType, useParensForJoins, useParensForSetQueries, usePreparedStatements, useScientificNotation, useSelectLimit, useStreamsForLobs, useUnicodePrefix, useWithRollup
      • Methods inherited from class org.teiid.translator.ExecutionFactory

        addPushDownFunction, areLobsUsableAfterClose, createExecution, getCacheDirective, getCollationLocale, getConnection, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxFromGroups, getMaxInCriteriaSize, getMaxProjectedColumns, getNativeQueryProcedureName, getPushDownFunctions, getRequiredLikeEscape, getSupportedJoinCriteria, getTransactionSupport, getTypeFacility, isCopyLobs, isForkable, isImmutable, 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, supportsArrayAgg, supportsCompareCriteriaOrderedExclusive, supportsCorrelatedSubqueryLimit, supportsDirectQueryProcedure, supportsFormatLiteral, supportsFullOuterJoins, supportsGeographyType, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsInnerJoins, supportsIsDistinctCriteria, supportsLateralJoin, supportsLateralJoinCondition, supportsLikeRegex, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyFormatLiterals, supportsOnlyLateralJoinProcedure, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureTable, supportsRecursiveCommonTableExpressions, supportsScalarSubqueryProjection, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSetQueryLimitOffset, supportsSimilarTo, supportsStringAgg, supportsSubqueryCommonTableExpressions, supportsUpsert, supportsWindowDistinctAggregates, supportsWindowFrameClause, supportsWindowFunctionCumeDist, supportsWindowFunctionNthValue, supportsWindowFunctionNtile, supportsWindowFunctionPercentRank, supportsWindowOrderByWithAggregates
    • Field Detail

      • V_0_153

        public static final org.teiid.util.Version V_0_153
    • Constructor Detail

      • PrestoDBExecutionFactory

        public PrestoDBExecutionFactory()
    • Method Detail

      • createUpdateExecution

        public org.teiid.translator.jdbc.JDBCUpdateExecution createUpdateExecution​(org.teiid.language.Command command,
                                                                                   org.teiid.translator.ExecutionContext executionContext,
                                                                                   org.teiid.metadata.RuntimeMetadata metadata,
                                                                                   Connection conn)
                                                                            throws org.teiid.translator.TranslatorException
        Overrides:
        createUpdateExecution in class org.teiid.translator.jdbc.JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • createProcedureExecution

        public org.teiid.translator.ProcedureExecution createProcedureExecution​(org.teiid.language.Call command,
                                                                                org.teiid.translator.ExecutionContext executionContext,
                                                                                org.teiid.metadata.RuntimeMetadata metadata,
                                                                                Connection conn)
                                                                         throws org.teiid.translator.TranslatorException
        Overrides:
        createProcedureExecution in class org.teiid.translator.jdbc.JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • createDirectExecution

        public org.teiid.translator.ProcedureExecution createDirectExecution​(List<org.teiid.language.Argument> arguments,
                                                                             org.teiid.language.Command command,
                                                                             org.teiid.translator.ExecutionContext executionContext,
                                                                             org.teiid.metadata.RuntimeMetadata metadata,
                                                                             Connection conn)
                                                                      throws org.teiid.translator.TranslatorException
        Overrides:
        createDirectExecution in class org.teiid.translator.jdbc.JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • useAnsiJoin

        public boolean useAnsiJoin()
        Overrides:
        useAnsiJoin in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • createMetadataProcessor

        @Deprecated
        protected org.teiid.translator.jdbc.JDBCMetadataProcessor createMetadataProcessor()
        Deprecated.
        Overrides:
        createMetadataProcessor in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • getMetadataProcessor

        public org.teiid.translator.MetadataProcessor<Connection> getMetadataProcessor()
        Overrides:
        getMetadataProcessor in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • isSourceRequiredForMetadata

        public boolean isSourceRequiredForMetadata()
        Overrides:
        isSourceRequiredForMetadata in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsConvert

        public boolean supportsConvert​(int fromType,
                                       int toType)
        Overrides:
        supportsConvert in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • usesDatabaseVersion

        protected boolean usesDatabaseVersion()
        Overrides:
        usesDatabaseVersion in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • initCapabilities

        public void initCapabilities​(Connection connection)
                              throws org.teiid.translator.TranslatorException
        Overrides:
        initCapabilities in class org.teiid.translator.jdbc.JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • start

        public void start()
                   throws org.teiid.translator.TranslatorException
        Overrides:
        start in class org.teiid.translator.jdbc.JDBCExecutionFactory
        Throws:
        org.teiid.translator.TranslatorException
      • getSupportedFunctions

        public List<String> getSupportedFunctions()
        Overrides:
        getSupportedFunctions in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • translateLiteralDate

        public String translateLiteralDate​(Date dateValue)
        Base on https://prestodb.io/docs/current/functions/datetime.html, the support format are date '2012-08-08', time '01:00', timestamp '2012-08-08 01:00'
        Overrides:
        translateLiteralDate in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • translateLiteralTime

        public String translateLiteralTime​(Time timeValue)
        Overrides:
        translateLiteralTime in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • translateLiteralTimestamp

        public String translateLiteralTimestamp​(Timestamp timestampValue)
        Overrides:
        translateLiteralTimestamp in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • supportsSelectWithoutFrom

        public boolean supportsSelectWithoutFrom()
        Overrides:
        supportsSelectWithoutFrom in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsSubqueryInOn

        public boolean supportsSubqueryInOn()
        Overrides:
        supportsSubqueryInOn in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsInlineViews

        public boolean supportsInlineViews()
        Overrides:
        supportsInlineViews in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • supportsExistsCriteria

        public boolean supportsExistsCriteria()
        Overrides:
        supportsExistsCriteria in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • supportsOnlyLiteralComparison

        public boolean supportsOnlyLiteralComparison()
        Overrides:
        supportsOnlyLiteralComparison in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsOrderByNullOrdering

        public boolean supportsOrderByNullOrdering()
        Overrides:
        supportsOrderByNullOrdering in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsAggregatesEnhancedNumeric

        public boolean supportsAggregatesEnhancedNumeric()
        Overrides:
        supportsAggregatesEnhancedNumeric in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsIntersect

        public boolean supportsIntersect()
        Overrides:
        supportsIntersect in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsExcept

        public boolean supportsExcept()
        Overrides:
        supportsExcept in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsRowLimit

        public boolean supportsRowLimit()
        Overrides:
        supportsRowLimit in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsRowOffset

        public boolean supportsRowOffset()
        Overrides:
        supportsRowOffset in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsFunctionsInGroupBy

        public boolean supportsFunctionsInGroupBy()
        Overrides:
        supportsFunctionsInGroupBy in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsBulkUpdate

        public boolean supportsBulkUpdate()
        Overrides:
        supportsBulkUpdate in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • supportsBatchedUpdates

        public boolean supportsBatchedUpdates()
        Overrides:
        supportsBatchedUpdates in class org.teiid.translator.jdbc.JDBCExecutionFactory
      • supportsCommonTableExpressions

        public boolean supportsCommonTableExpressions()
        Overrides:
        supportsCommonTableExpressions in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsElementaryOlapOperations

        public boolean supportsElementaryOlapOperations()
        Overrides:
        supportsElementaryOlapOperations in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsArrayType

        public boolean supportsArrayType()
        Overrides:
        supportsArrayType in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsCorrelatedSubqueries

        public boolean supportsCorrelatedSubqueries()
        Overrides:
        supportsCorrelatedSubqueries in class org.teiid.translator.jdbc.JDBCExecutionFactory