@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 |
|---|---|
protected ConvertModifier |
convertModifier |
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 |
NINE_4 |
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, DEFAULT_MAX_PROJECTED_COLUMNS| 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() |
String |
getHibernateDialectClassName() |
int |
getMaxProjectedColumns() |
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,
ExecutionContext context,
Connection connection)
pg needs to collect stats for effective planning
|
Object |
retrieveGeographyValue(ResultSet results,
int paramIndex)
The default strategy assumes a blob value containing wkb
|
Object |
retrieveGeometryValue(ResultSet results,
int paramIndex)
The default strategy assumes a blob value containing wkb
|
Object |
retrieveValue(CallableStatement results,
int parameterIndex,
Class<?> expectedType)
Retrieve the value for the given parameter index
|
Object |
retrieveValue(ResultSet results,
int columnIndex,
Class<?> expectedType)
Retrieve the value on the current resultset row for the given column index.
|
void |
setPostGisVersion(String postGisVersion) |
void |
setProjSupported(boolean projSupported) |
void |
start() |
boolean |
supportsAdvancedOlapOperations() |
boolean |
supportsAggregatesEnhancedNumeric() |
boolean |
supportsArrayAgg() |
boolean |
supportsArrayType() |
boolean |
supportsCommonTableExpressions() |
boolean |
supportsElementaryOlapOperations() |
boolean |
supportsExcept() |
boolean |
supportsFormatLiteral(String literal,
ExecutionFactory.Format format) |
boolean |
supportsFunctionsInGroupBy() |
boolean |
supportsGeographyType() |
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(LanguageObject obj,
ExecutionContext context)
Postgres doesn't provide min/max(boolean), so this conversion writes a min(BooleanValue) as
bool_and(BooleanValue)
|
Expression |
translateGeographySelect(Expression expr)
Translate GEOGRAPHY column reference into an expression that
will return WKB and possibly the SRID.
|
Expression |
translateGeometrySelect(Expression expr)
Translate GEOMETRY column reference into an expression that
will return WKB and possibly the SRID.
|
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, isCharacterType, isDefaultTimeZone, isEnableDependentJoins, isExtendedAscii, isNonAscii, isNonAscii, isNonAsciiFunction, isSourceRequired, isSourceRequiredForCapabilities, isTrimStrings, obtainedConnection, registerFunctionModifier, registerSpecificTypeOfOutParameter, replaceElementName, retrieveGeographyValue, retrieveGeometryValue, 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, translateGeographyLiteral, translateGeographyParameter, translateGeometryLiteral, translateGeometryParameter, useAsInGroupAlias, useBindingsForDependentJoin, useBindVariables, useColumnNamesForGeneratedKeys, useCommentsInSourceQuery, useNBindingType, 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, supportsAggregatesCountBig, supportsCompareCriteriaOrderedExclusive, supportsConvert, supportsCorrelatedSubqueryLimit, supportsDirectQueryProcedure, supportsFullOuterJoins, supportsGroupByMultipleDistinctAggregates, supportsGroupByRollup, supportsInnerJoins, supportsLateralJoinCondition, supportsListAgg, supportsMultipleOpenExecutions, supportsNativeQueries, supportsOnlyCorrelatedSubqueries, supportsOnlyLateralJoinProcedure, supportsOnlyLiteralComparison, supportsOnlySingleTableGroupBy, supportsOnlyTimestampAddLiteral, supportsOrderBy, supportsOrderByWithExtendedGrouping, supportsOuterJoins, supportsPartialFiltering, supportsProcedureTable, supportsScalarSubqueryProjection, supportsSelectDistinct, supportsSelectExpressionArrayType, supportsSetQueryLimitOffset, supportsSubqueryCommonTableExpressions, supportsSubqueryInOn, supportsUpsert, supportsWindowFrameClause, supportsWindowFunctionCumeDist, supportsWindowFunctionNthValue, supportsWindowFunctionNtile, supportsWindowFunctionPercentRank, 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
public static final Version NINE_4
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
protected ConvertModifier convertModifier
public Object convertToken(String group)
group - public void start()
throws TranslatorException
start in class JDBCExecutionFactoryTranslatorExceptionpublic void initCapabilities(Connection connection) throws TranslatorException
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()
getDefaultNullOrder in class JDBCExecutionFactorypublic boolean supportsOrderByNullOrdering()
supportsOrderByNullOrdering in class ExecutionFactory<DataSource,Connection>public List<String> getSupportedFunctions()
getSupportedFunctions in class JDBCExecutionFactorypublic boolean supportsInlineViews()
supportsInlineViews in class JDBCExecutionFactorypublic boolean supportsRowLimit()
supportsRowLimit in class ExecutionFactory<DataSource,Connection>public boolean supportsRowOffset()
supportsRowOffset in class ExecutionFactory<DataSource,Connection>public boolean supportsExcept()
supportsExcept in class ExecutionFactory<DataSource,Connection>public boolean supportsIntersect()
supportsIntersect in class ExecutionFactory<DataSource,Connection>public boolean supportsAggregatesEnhancedNumeric()
supportsAggregatesEnhancedNumeric 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 supportsAdvancedOlapOperations()
supportsAdvancedOlapOperations 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()
supportsOnlyFormatLiterals in class ExecutionFactory<DataSource,Connection>public boolean supportsFormatLiteral(String literal, ExecutionFactory.Format format)
supportsFormatLiteral in class ExecutionFactory<DataSource,Connection>public boolean supportsArrayType()
supportsArrayType 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()
getMetadataProcessor in class JDBCExecutionFactorypublic Expression translateGeometrySelect(Expression expr)
JDBCExecutionFactorytranslateGeometrySelect in class JDBCExecutionFactorypublic Expression translateGeographySelect(Expression expr)
JDBCExecutionFactorytranslateGeographySelect in class JDBCExecutionFactorypublic Object retrieveGeometryValue(ResultSet results, int paramIndex) throws SQLException
JDBCExecutionFactoryretrieveGeometryValue in class JDBCExecutionFactorySQLExceptionpublic Object retrieveGeographyValue(ResultSet results, int paramIndex) throws SQLException
JDBCExecutionFactoryretrieveGeographyValue 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()
supportsIsDistinctCriteria in class ExecutionFactory<DataSource,Connection>public boolean supportsFunctionsInGroupBy()
supportsFunctionsInGroupBy in class ExecutionFactory<DataSource,Connection>public boolean supportsGeographyType()
supportsGeographyType in class ExecutionFactory<DataSource,Connection>public Object retrieveValue(CallableStatement results, int parameterIndex, Class<?> expectedType) throws SQLException
JDBCExecutionFactoryretrieveValue in class JDBCExecutionFactorySQLExceptionpublic Object retrieveValue(ResultSet results, int columnIndex, Class<?> expectedType) throws SQLException
JDBCExecutionFactoryretrieveValue in class JDBCExecutionFactorySQLExceptionpublic int getMaxProjectedColumns()
getMaxProjectedColumns in class ExecutionFactory<DataSource,Connection>Copyright © 2019. All rights reserved.