@Translator(name="postgresql",
description="A translator for postgreSQL Database")
public class PostgreSQLExecutionFactory
extends JDBCExecutionFactory
JDBCExecutionFactory.StructRetrieval| Modifier and Type | Field and Description |
|---|---|
static org.teiid.util.Version |
EIGHT_0 |
static org.teiid.util.Version |
EIGHT_1 |
static org.teiid.util.Version |
EIGHT_2 |
static org.teiid.util.Version |
EIGHT_3 |
static org.teiid.util.Version |
EIGHT_4 |
static org.teiid.util.Version |
NINE_0 |
static org.teiid.util.Version |
NINE_3 |
static org.teiid.util.Version |
ONE_3 |
static org.teiid.util.Version |
ONE_4 |
static org.teiid.util.Version |
ONE_5 |
protected OracleFormatFunctionModifier |
parseModifier |
static String |
POSTGRESQL |
static org.teiid.util.Version |
TWO_0 |
DEFAULT_MAX_DEPENDENT_PREDICATES, DEFAULT_MAX_IN_CRITERIA, DEFAULT_TIME_ZONE, dialect| Constructor and Description |
|---|
PostgreSQLExecutionFactory() |
| Modifier and Type | Method and Description |
|---|---|
static List<Object> |
addDefaultEscape(org.teiid.language.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) |
org.teiid.translator.ExecutionFactory.NullOrder |
getDefaultNullOrder() |
String |
getHibernateDialectClassName() |
org.teiid.translator.MetadataProcessor<Connection> |
getMetadataProcessor() |
String |
getPostGisVersion() |
SQLConversionVisitor |
getSQLConversionVisitor()
Create the
SQLConversionVisitor that will perform translation. |
List<String> |
getSupportedFunctions() |
int |
getTimestampNanoPrecision()
Return the precision of timestamp literals.
|
void |
initCapabilities(Connection connection) |
boolean |
isProjSupported() |
void |
loadedTemporaryTable(String tableName,
org.teiid.translator.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() |
boolean |
supportsAggregatesEnhancedNumeric() |
boolean |
supportsArrayAgg() |
boolean |
supportsArrayType() |
boolean |
supportsCommonTableExpressions() |
boolean |
supportsElementaryOlapOperations() |
boolean |
supportsExcept() |
boolean |
supportsFormatLiteral(String literal,
org.teiid.translator.ExecutionFactory.Format format) |
boolean |
supportsFunctionsInGroupBy() |
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() |
boolean |
supportsIsDistinctCriteria() |
boolean |
supportsLateralJoin() |
boolean |
supportsLikeRegex() |
boolean |
supportsOnlyFormatLiterals() |
boolean |
supportsOrderByNullOrdering() |
boolean |
supportsRecursiveCommonTableExpressions() |
boolean |
supportsRowLimit() |
boolean |
supportsRowOffset() |
boolean |
supportsSelectWithoutFrom() |
boolean |
supportsSimilarTo() |
boolean |
supportsStringAgg() |
boolean |
supportsWindowDistinctAggregates() |
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)
|
org.teiid.language.Expression |
translateGeometrySelect(org.teiid.language.Expression expr)
Translate GEOMETRY column reference into an expression that
will return SRID & WKB.
|
List<?> |
translateLimit(org.teiid.language.Limit limit,
org.teiid.translator.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 org.teiid.util.Version EIGHT_0
public static final org.teiid.util.Version EIGHT_1
public static final org.teiid.util.Version EIGHT_2
public static final org.teiid.util.Version EIGHT_3
public static final org.teiid.util.Version EIGHT_4
public static final org.teiid.util.Version NINE_0
public static final org.teiid.util.Version NINE_3
protected OracleFormatFunctionModifier parseModifier
public static final org.teiid.util.Version ONE_3
public static final org.teiid.util.Version ONE_4
public static final org.teiid.util.Version ONE_5
public static final org.teiid.util.Version TWO_0
public Object convertToken(String group)
group - public void start()
throws org.teiid.translator.TranslatorException
start in class JDBCExecutionFactoryorg.teiid.translator.TranslatorExceptionpublic void initCapabilities(Connection connection) throws org.teiid.translator.TranslatorException
initCapabilities in class JDBCExecutionFactoryorg.teiid.translator.TranslatorExceptionpublic 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(org.teiid.language.Limit limit, org.teiid.translator.ExecutionContext context)
JDBCExecutionFactoryLanguageObjects and Objects), or null
if to rely on the default translation.translateLimit in class JDBCExecutionFactorypublic List<?> translate(org.teiid.language.LanguageObject obj, org.teiid.translator.ExecutionContext context)
translate in class JDBCExecutionFactoryLanguageObjectVisitor.visit(org.teiid.language.AggregateFunction)public static List<Object> addDefaultEscape(org.teiid.language.Like like)
like - public org.teiid.translator.ExecutionFactory.NullOrder getDefaultNullOrder()
getDefaultNullOrder in class JDBCExecutionFactorypublic boolean supportsOrderByNullOrdering()
supportsOrderByNullOrdering in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public List<String> getSupportedFunctions()
getSupportedFunctions in class JDBCExecutionFactorypublic boolean supportsInlineViews()
supportsInlineViews in class JDBCExecutionFactorypublic boolean supportsRowLimit()
supportsRowLimit in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsRowOffset()
supportsRowOffset in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsExcept()
supportsExcept in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsIntersect()
supportsIntersect in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsAggregatesEnhancedNumeric()
supportsAggregatesEnhancedNumeric in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsCommonTableExpressions()
supportsCommonTableExpressions in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsRecursiveCommonTableExpressions()
supportsRecursiveCommonTableExpressions in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsArrayAgg()
supportsArrayAgg in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsElementaryOlapOperations()
supportsElementaryOlapOperations in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsWindowDistinctAggregates()
supportsWindowDistinctAggregates in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsSimilarTo()
supportsSimilarTo in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsLikeRegex()
supportsLikeRegex in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsOnlyFormatLiterals()
supportsOnlyFormatLiterals in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsFormatLiteral(String literal, org.teiid.translator.ExecutionFactory.Format format)
supportsFormatLiteral in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsArrayType()
supportsArrayType in class org.teiid.translator.ExecutionFactory<DataSource,Connection>protected boolean usesDatabaseVersion()
usesDatabaseVersion in class JDBCExecutionFactorypublic boolean supportsStringAgg()
supportsStringAgg in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsSelectWithoutFrom()
supportsSelectWithoutFrom in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public String getHibernateDialectClassName()
getHibernateDialectClassName in class JDBCExecutionFactorypublic String getCreateTemporaryTablePostfix(boolean inTransaction)
getCreateTemporaryTablePostfix in class JDBCExecutionFactorypublic void loadedTemporaryTable(String tableName, org.teiid.translator.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 org.teiid.translator.MetadataProcessor<Connection> getMetadataProcessor()
getMetadataProcessor in class JDBCExecutionFactorypublic org.teiid.language.Expression translateGeometrySelect(org.teiid.language.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 org.teiid.translator.ExecutionFactory<DataSource,Connection>public void bindValue(PreparedStatement stmt, Object param, Class<?> paramType, int i) throws SQLException
JDBCExecutionFactorybindValue in class JDBCExecutionFactorySQLExceptionpublic boolean supportsIsDistinctCriteria()
supportsIsDistinctCriteria in class org.teiid.translator.ExecutionFactory<DataSource,Connection>public boolean supportsFunctionsInGroupBy()
supportsFunctionsInGroupBy in class org.teiid.translator.ExecutionFactory<DataSource,Connection>Copyright © 2018 JBoss by Red Hat. All rights reserved.