@Translator(name="postgresql", description="A translator for postgreSQL Database") public class PostgreSQLExecutionFactory extends JDBCExecutionFactory
JDBCExecutionFactory.StructRetrievalExecutionFactory.Format, ExecutionFactory.NullOrder, ExecutionFactory.SupportedJoinCriteria, ExecutionFactory.TransactionSupport| Modifier and Type | Field and Description |
|---|---|
static Version |
EIGHT_0 |
static Version |
EIGHT_1 |
static Version |
EIGHT_2 |
static Version |
EIGHT_3 |
static Version |
EIGHT_4 |
static Version |
NINE_0 |
static Version |
NINE_3 |
static Version |
ONE_3 |
static Version |
ONE_4 |
static Version |
ONE_5 |
protected OracleFormatFunctionModifier |
parseModifier |
static String |
POSTGRESQL |
static Version |
TWO_0 |
DEFAULT_MAX_DEPENDENT_PREDICATES, DEFAULT_MAX_IN_CRITERIA, DEFAULT_TIME_ZONE, dialectDEFAULT_MAX_FROM_GROUPS, DEFAULT_MAX_IN_CRITERIA_SIZE| Constructor and Description |
|---|
PostgreSQLExecutionFactory() |
| Modifier and Type | Method and Description |
|---|---|
static List<Object> |
addDefaultEscape(Like like)
Add a default escape
|
void |
bindValue(PreparedStatement stmt,
Object param,
Class<?> paramType,
int i)
Sets prepared statement parameter i with param.
|
Object |
convertToken(String group)
Convert to a new parsing token or return null if not possible
|
String |
getCreateTemporaryTablePostfix(boolean inTransaction) |
ExecutionFactory.NullOrder |
getDefaultNullOrder()
Returns the default null ordering
|
String |
getHibernateDialectClassName() |
MetadataProcessor<Connection> |
getMetadataProcessor()
Get a MetadataProcessor for the translator to read the metadata.
|
String |
getPostGisVersion() |
SQLConversionVisitor |
getSQLConversionVisitor()
Create the
SQLConversionVisitor that will perform translation. |
List<String> |
getSupportedFunctions()
Get list of all supported function names.
|
int |
getTimestampNanoPrecision()
Return the precision of timestamp literals.
|
void |
initCapabilities(Connection connection)
Will be called by
ExecutionFactory.start() with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities() |
boolean |
isProjSupported() |
void |
loadedTemporaryTable(String tableName,
ExecutionContext context,
Connection connection)
pg needs to collect stats for effective planning
|
Object |
retrieveGeometryValue(ResultSet results,
int paramIndex) |
void |
setPostGisVersion(String postGisVersion) |
void |
setProjSupported(boolean projSupported) |
void |
start()
Initialize the connector with supplied configuration
|
boolean |
supportsAggregatesEnhancedNumeric()
Support indicates connector can accept STDDEV_POP, STDDEV_VAR, VAR_POP, VAR_SAMP
|
boolean |
supportsArrayAgg() |
boolean |
supportsArrayType()
The engine uses array types for dependent joins and for array expression.
|
boolean |
supportsCommonTableExpressions() |
boolean |
supportsElementaryOlapOperations() |
boolean |
supportsExcept()
Support indicates that the connector supports the EXCEPT of two queries.
|
boolean |
supportsFormatLiteral(String literal,
ExecutionFactory.Format format) |
boolean |
supportsFunctionsInGroupBy()
Support indicates that the connector supports non-column expressions in GROUP BY, such as:
SELECT dayofmonth(theDate), COUNT(*) FROM table GROUP BY dayofmonth(theDate) |
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.
|
boolean |
supportsIntersect()
Support indicates that the connector supports the INTERSECT of two queries.
|
boolean |
supportsIsDistinctCriteria()
Support indicates connector accepts criteria of form (exp1 IS DISTINCT exp2)
|
boolean |
supportsLateralJoin() |
boolean |
supportsLikeRegex() |
boolean |
supportsOnlyFormatLiterals()
|
boolean |
supportsOrderByNullOrdering()
Returns whether the database supports explicit null ordering.
|
boolean |
supportsRecursiveCommonTableExpressions() |
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 |
supportsSelectWithoutFrom() |
boolean |
supportsSimilarTo() |
boolean |
supportsStringAgg() |
boolean |
supportsWindowDistinctAggregates() |
List<?> |
translate(LanguageObject obj,
ExecutionContext context)
Postgres doesn't provide min/max(boolean), so this conversion writes a min(BooleanValue) as
bool_and(BooleanValue)
|
Expression |
translateGeometrySelect(Expression expr)
Translate GEOMETRY column reference into an expression that
will return SRID & WKB.
|
List<?> |
translateLimit(Limit limit,
ExecutionContext context)
Return a List of translated parts (
LanguageObjects and Objects), or null
if to rely on the default translation. |
String |
translateLiteralBinaryType(BinaryType obj)
Subclasses should override this method to provide a different sql translation
of the literal varbinary value.
|
String |
translateLiteralBoolean(Boolean booleanValue)
Subclasses should override this method to provide a different sql translation
of the literal boolean value.
|
String |
translateLiteralDate(Date dateValue)
Subclasses should override this method to provide a different sql translation
of the literal date value.
|
String |
translateLiteralTime(Time timeValue)
Subclasses should override this method to provide a different sql translation
of the literal time value.
|
String |
translateLiteralTimestamp(Timestamp timestampValue)
Subclasses should override this method to provide a different sql translation
of the literal timestamp value.
|
protected boolean |
usesDatabaseVersion() |
boolean |
useStreamsForLobs()
If streams should be used for Blob/Clob sets on
PreparedStatements |
addSourceComment, afterInitialConnectionObtained, closeConnection, convertObject, createDirectExecution, createMetadataProcessor, createProcedureExecution, createResultSetExecution, createTempTable, createUpdateExecution, executeStoredProcedure, formatDateValue, formatDateValue, getCommentFormat, getConnection, getCreateTemporaryTableString, getCreateTempTableSQL, getDatabaseCalendar, getDatabaseTimeZone, getDatabaseVersion, getDefaultSupportedFunctions, getDialect, getFunctionModifiers, getLateralKeyword, getLikeRegexString, getMaxPreparedInsertBatchSize, getMetadata, getRemovePushdownCharacters, getSetOperationString, getSourceComment, getStructRetrieval, getTemporaryTableName, getVersion, hasTimeType, intializeConnectionAfterCancel, isEnableDependentJoins, isNonAscii, isNonAsciiFunction, isSourceRequired, isSourceRequiredForCapabilities, isTrimStrings, obtainedConnection, parseName, registerFunctionModifier, registerSpecificTypeOfOutParameter, replaceElementName, retrieveGeometryValue, retrieveValue, retrieveValue, setCommentFormat, setDatabaseTimeZone, setDatabaseVersion, setDatabaseVersion, setEnableDependentJoins, setFetchSize, setMaxPreparedInsertBatchSize, setRemovePushdownCharacters, setStructRetrieval, setTrimStrings, setUseBindingsForDependentJoin, setUseBindVariables, setUseCommentsInSourceQuery, supportsAggregatesAvg, supportsAggregatesCount, supportsAggregatesCountStar, supportsAggregatesDistinct, supportsAggregatesMax, supportsAggregatesMin, supportsAggregatesSum, supportsAliasedTable, supportsBatchedUpdates, supportsBooleanExpressions, supportsBulkUpdate, supportsCompareCriteriaEquals, supportsCompareCriteriaOrdered, supportsCorrelatedSubqueries, supportsDependentJoins, supportsExistsCriteria, supportsFullDependentJoins, supportsGeneratedKeys, supportsGeneratedKeys, supportsGroupBy, supportsHaving, supportsInCriteria, supportsInCriteriaSubquery, supportsInsertWithQueryExpression, supportsIsNullCriteria, supportsLikeCriteria, supportsLikeCriteriaEscapeCharacter, supportsNotCriteria, supportsOrCriteria, supportsOrderByUnrelated, supportsQuantifiedCompareCriteriaAll, supportsQuantifiedCompareCriteriaSome, supportsScalarSubqueries, supportsSearchedCaseExpressions, supportsSelectExpression, supportsSelfJoins, supportsSetQueryOrderBy, supportsUnions, tempTableRequiresTransaction, translateCommand, translateGeometryLiteral, translateGeometryParameter, useAsInGroupAlias, useBindingsForDependentJoin, useBindVariables, useColumnNamesForGeneratedKeys, useCommentsInSourceQuery, useParensForJoins, useParensForSetQueries, usePreparedStatements, useScientificNotation, useSelectLimit, useUnicodePrefix, useWithRollupaddPushDownFunction, areLobsUsableAfterClose, createExecution, getCacheDirective, getCollationLocale, getConnection, getDirectQueryProcedureName, getExcludedCommonTableExpressionName, getInstance, getLanguageFactory, getMaxDependentInPredicates, getMaxFromGroups, getMaxInCriteriaSize, getNativeQueryProcedureName, getPushDownFunctions, getRequiredLikeEscape, getSupportedJoinCriteria, getTransactionSupport, getTypeFacility, isCopyLobs, isForkable, isImmutable, 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, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueryLimit, supportsDirectQueryProcedure, supportsFullOuterJoins, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsInnerJoins, supportsLateralJoinCondition, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyLateralJoinProcedure, supportsOnlyLiteralComparison, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureTable, supportsScalarSubqueryProjection, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSetQueryLimitOffset, supportsSubqueryCommonTableExpressions, supportsSubqueryInOn, supportsUpsert, supportsWindowOrderByWithAggregates, useAnsiJoinpublic static String POSTGRESQL
public static final Version EIGHT_0
public static final Version EIGHT_1
public static final Version EIGHT_2
public static final Version EIGHT_3
public static final Version EIGHT_4
public static final Version NINE_0
public static final Version NINE_3
protected OracleFormatFunctionModifier parseModifier
public static final Version ONE_3
public static final Version ONE_4
public static final Version ONE_5
public static final Version TWO_0
public Object convertToken(String group)
group - public void start()
throws TranslatorException
ExecutionFactorystart in class JDBCExecutionFactoryTranslatorExceptionpublic void initCapabilities(Connection connection) throws TranslatorException
ExecutionFactoryExecutionFactory.start() with a null connection if a source connection is not ExecutionFactory.isSourceRequiredForCapabilities()initCapabilities in class JDBCExecutionFactoryTranslatorExceptionpublic String translateLiteralBoolean(Boolean booleanValue)
JDBCExecutionFactory'0' or '1'.translateLiteralBoolean in class JDBCExecutionFactorybooleanValue - Boolean value, never nullpublic String translateLiteralDate(Date dateValue)
JDBCExecutionFactory{d '2002-12-31'}translateLiteralDate in class JDBCExecutionFactorydateValue - Date value, never nullpublic String translateLiteralTime(Time timeValue)
JDBCExecutionFactory{t '23:59:59'}
See JDBCExecutionFactory.hasTimeType() to represent literal times as timestamps.translateLiteralTime in class JDBCExecutionFactorytimeValue - Time value, never nullpublic String translateLiteralTimestamp(Timestamp timestampValue)
JDBCExecutionFactory{ts '2002-12-31 23:59:59'}.
See JDBCExecutionFactory.getTimestampNanoPrecision() to control the literal
precision.translateLiteralTimestamp in class JDBCExecutionFactorytimestampValue - Timestamp value, never nullpublic int getTimestampNanoPrecision()
JDBCExecutionFactorygetTimestampNanoPrecision in class JDBCExecutionFactorypublic List<?> translateLimit(Limit limit, ExecutionContext context)
JDBCExecutionFactoryLanguageObjects and Objects), or null
if to rely on the default translation.translateLimit in class JDBCExecutionFactorypublic List<?> translate(LanguageObject obj, ExecutionContext context)
translate in class JDBCExecutionFactoryLanguageObjectVisitor.visit(org.teiid.language.AggregateFunction)public static List<Object> addDefaultEscape(Like like)
like - public ExecutionFactory.NullOrder getDefaultNullOrder()
ExecutionFactorygetDefaultNullOrder in class JDBCExecutionFactoryExecutionFactory.NullOrderpublic boolean supportsOrderByNullOrdering()
ExecutionFactorysupportsOrderByNullOrdering in class ExecutionFactory<DataSource,Connection>public List<String> getSupportedFunctions()
ExecutionFactorygetSupportedFunctions in class JDBCExecutionFactoryfor 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 supportsInlineViews()
supportsInlineViews in class JDBCExecutionFactorypublic boolean supportsRowLimit()
ExecutionFactorysupportsRowLimit in class ExecutionFactory<DataSource,Connection>public boolean supportsRowOffset()
ExecutionFactorysupportsRowOffset in class ExecutionFactory<DataSource,Connection>public boolean supportsExcept()
ExecutionFactorysupportsExcept in class ExecutionFactory<DataSource,Connection>public boolean supportsIntersect()
ExecutionFactorysupportsIntersect in class ExecutionFactory<DataSource,Connection>public boolean supportsAggregatesEnhancedNumeric()
ExecutionFactorysupportsAggregatesEnhancedNumeric in class ExecutionFactory<DataSource,Connection>public boolean supportsCommonTableExpressions()
supportsCommonTableExpressions in class ExecutionFactory<DataSource,Connection>public boolean supportsRecursiveCommonTableExpressions()
supportsRecursiveCommonTableExpressions in class ExecutionFactory<DataSource,Connection>public boolean supportsArrayAgg()
supportsArrayAgg in class ExecutionFactory<DataSource,Connection>public boolean supportsElementaryOlapOperations()
supportsElementaryOlapOperations in class ExecutionFactory<DataSource,Connection>public boolean supportsWindowDistinctAggregates()
supportsWindowDistinctAggregates in class ExecutionFactory<DataSource,Connection>public boolean supportsSimilarTo()
supportsSimilarTo in class ExecutionFactory<DataSource,Connection>public boolean supportsLikeRegex()
supportsLikeRegex in class ExecutionFactory<DataSource,Connection>public boolean supportsOnlyFormatLiterals()
ExecutionFactorysupportsOnlyFormatLiterals in class ExecutionFactory<DataSource,Connection>public boolean supportsFormatLiteral(String literal, ExecutionFactory.Format format)
supportsFormatLiteral in class ExecutionFactory<DataSource,Connection>public boolean supportsArrayType()
ExecutionFactorysupportsArrayType in class ExecutionFactory<DataSource,Connection>protected boolean usesDatabaseVersion()
usesDatabaseVersion in class JDBCExecutionFactorypublic boolean supportsStringAgg()
supportsStringAgg in class ExecutionFactory<DataSource,Connection>public boolean supportsSelectWithoutFrom()
supportsSelectWithoutFrom in class ExecutionFactory<DataSource,Connection>public String getHibernateDialectClassName()
getHibernateDialectClassName in class JDBCExecutionFactorypublic String getCreateTemporaryTablePostfix(boolean inTransaction)
getCreateTemporaryTablePostfix in class JDBCExecutionFactorypublic void loadedTemporaryTable(String tableName, ExecutionContext context, Connection connection) throws SQLException
loadedTemporaryTable in class JDBCExecutionFactorySQLExceptionpublic SQLConversionVisitor getSQLConversionVisitor()
JDBCExecutionFactorySQLConversionVisitor that will perform translation. Typical custom
JDBC connectors will not need to create custom conversion visitors, rather implementors
should override existing JDBCExecutionFactory methods.getSQLConversionVisitor in class JDBCExecutionFactorySQLConversionVisitorpublic void setPostGisVersion(String postGisVersion)
@TranslatorProperty(display="PostGIS Version", description="The version of the PostGIS extension.", advanced=true) public String getPostGisVersion()
@TranslatorProperty(display="Proj support enabled", description="If PostGIS Proj support is enabled for ST_TRANSFORM", advanced=true) public boolean isProjSupported()
public void setProjSupported(boolean projSupported)
public MetadataProcessor<Connection> getMetadataProcessor()
ExecutionFactorygetMetadataProcessor in class JDBCExecutionFactorypublic Expression translateGeometrySelect(Expression expr)
JDBCExecutionFactorytranslateGeometrySelect in class JDBCExecutionFactorypublic Object retrieveGeometryValue(ResultSet results, int paramIndex) throws SQLException
retrieveGeometryValue in class JDBCExecutionFactorySQLExceptionpublic boolean useStreamsForLobs()
JDBCExecutionFactoryPreparedStatementsuseStreamsForLobs in class JDBCExecutionFactorypublic String translateLiteralBinaryType(BinaryType obj)
JDBCExecutionFactoryX'hex value'translateLiteralBinaryType in class JDBCExecutionFactoryobj - value, never nullpublic boolean supportsLateralJoin()
supportsLateralJoin in class ExecutionFactory<DataSource,Connection>public void bindValue(PreparedStatement stmt, Object param, Class<?> paramType, int i) throws SQLException
JDBCExecutionFactorybindValue in class JDBCExecutionFactorySQLExceptionpublic boolean supportsIsDistinctCriteria()
ExecutionFactorysupportsIsDistinctCriteria in class ExecutionFactory<DataSource,Connection>public boolean supportsFunctionsInGroupBy()
ExecutionFactorySupport indicates that the connector supports non-column expressions in GROUP BY, such as:
SELECT dayofmonth(theDate), COUNT(*) FROM table GROUP BY dayofmonth(theDate)
supportsFunctionsInGroupBy in class ExecutionFactory<DataSource,Connection>Copyright © 2018 JBoss by Red Hat. All rights reserved.