Class PostgreSQLExecutionFactory

    • Field Detail

      • POSTGRESQL

        public static String POSTGRESQL
      • EIGHT_0

        public static final org.teiid.util.Version EIGHT_0
      • EIGHT_1

        public static final org.teiid.util.Version EIGHT_1
      • EIGHT_2

        public static final org.teiid.util.Version EIGHT_2
      • EIGHT_3

        public static final org.teiid.util.Version EIGHT_3
      • EIGHT_4

        public static final org.teiid.util.Version EIGHT_4
      • NINE_0

        public static final org.teiid.util.Version NINE_0
      • NINE_3

        public static final org.teiid.util.Version NINE_3
      • NINE_4

        public static final org.teiid.util.Version NINE_4
      • ONE_3

        public static final org.teiid.util.Version ONE_3
      • ONE_4

        public static final org.teiid.util.Version ONE_4
      • ONE_5

        public static final org.teiid.util.Version ONE_5
      • TWO_0

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

      • PostgreSQLExecutionFactory

        public PostgreSQLExecutionFactory()
    • Method Detail

      • convertToken

        public Object convertToken​(String group)
        Convert to a new parsing token or return null if not possible
        Parameters:
        group -
        Returns:
      • start

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

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

        public String translateLiteralBoolean​(Boolean booleanValue)
        Description copied from class: JDBCExecutionFactory
        Subclasses should override this method to provide a different sql translation of the literal boolean value. By default, a boolean literal is represented as: '0' or '1'.
        Overrides:
        translateLiteralBoolean in class JDBCExecutionFactory
        Parameters:
        booleanValue - Boolean value, never null
        Returns:
        Translated string
      • translateLiteralDate

        public String translateLiteralDate​(Date dateValue)
        Description copied from class: JDBCExecutionFactory
        Subclasses should override this method to provide a different sql translation of the literal date value. By default, a date literal is represented as: {d '2002-12-31'}
        Overrides:
        translateLiteralDate in class JDBCExecutionFactory
        Parameters:
        dateValue - Date value, never null
        Returns:
        Translated string
      • translateLimit

        public List<?> translateLimit​(org.teiid.language.Limit limit,
                                      org.teiid.translator.ExecutionContext context)
        Description copied from class: JDBCExecutionFactory
        Return a List of translated parts (LanguageObjects and Objects), or null if to rely on the default translation.
        Overrides:
        translateLimit in class JDBCExecutionFactory
        Returns:
        a list of translated parts
      • translate

        public List<?> translate​(org.teiid.language.LanguageObject obj,
                                 org.teiid.translator.ExecutionContext context)
        Postgres doesn't provide min/max(boolean), so this conversion writes a min(BooleanValue) as bool_and(BooleanValue)
        Overrides:
        translate in class JDBCExecutionFactory
        Returns:
        list of translated parts
        Since:
        4.3
        See Also:
        LanguageObjectVisitor.visit(org.teiid.language.AggregateFunction)
      • addDefaultEscape

        public static List<Object> addDefaultEscape​(org.teiid.language.Like like)
        Add a default escape
        Parameters:
        like -
        Returns:
      • supportsOrderByNullOrdering

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

        public boolean supportsInlineViews()
        This is true only after Postgre version 7.1 However, since version 7 was released in 2000 we'll assume a post 7 instance.
        Overrides:
        supportsInlineViews in class JDBCExecutionFactory
      • 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>
      • supportsExcept

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

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

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

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

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

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

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

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

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

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

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

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

        public boolean supportsFormatLiteral​(String literal,
                                             org.teiid.translator.ExecutionFactory.Format format)
        Overrides:
        supportsFormatLiteral in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>
      • supportsArrayType

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

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

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

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

        public void setPostGisVersion​(String postGisVersion)
      • getPostGisVersion

        @TranslatorProperty(display="PostGIS Version",
                            description="The version of the PostGIS extension.",
                            advanced=true)
        public String getPostGisVersion()
      • isProjSupported

        @TranslatorProperty(display="Proj support enabled",
                            description="If PostGIS Proj support is enabled for ST_TRANSFORM",
                            advanced=true)
        public boolean isProjSupported()
      • setProjSupported

        public void setProjSupported​(boolean projSupported)
      • translateGeometrySelect

        public org.teiid.language.Expression translateGeometrySelect​(org.teiid.language.Expression expr)
        Description copied from class: JDBCExecutionFactory
        Translate GEOMETRY column reference into an expression that will return WKB and possibly the SRID.
        Overrides:
        translateGeometrySelect in class JDBCExecutionFactory
        Returns:
      • translateGeographySelect

        public org.teiid.language.Expression translateGeographySelect​(org.teiid.language.Expression expr)
        Description copied from class: JDBCExecutionFactory
        Translate GEOGRAPHY column reference into an expression that will return WKB and possibly the SRID.
        Overrides:
        translateGeographySelect in class JDBCExecutionFactory
        Returns:
      • translateLiteralBinaryType

        public String translateLiteralBinaryType​(org.teiid.core.types.BinaryType obj)
        Description copied from class: JDBCExecutionFactory
        Subclasses should override this method to provide a different sql translation of the literal varbinary value. By default, a varbinary literal is represented as: X'hex value'
        Overrides:
        translateLiteralBinaryType in class JDBCExecutionFactory
        Parameters:
        obj - value, never null
        Returns:
        Translated string
      • supportsLateralJoin

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

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

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

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

        public int getMaxProjectedColumns()
        Overrides:
        getMaxProjectedColumns in class org.teiid.translator.ExecutionFactory<DataSource,​Connection>